您当前的位置: 首页 > 

minato_yukina

暂无认证

  • 3浏览

    0关注

    138博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

白书5.6 二分

minato_yukina 发布时间:2020-11-21 19:32:07 ,浏览量:3

给你n个货物,k辆车,然后每个货物重Wi,问每个车最小装多重把货物全部运完.

然后注意货物是依次,所以只需要一个个装货物就行,这个车装不完直接给下一个车就行。然后注意right 和left c++里面有重名。

然后注意二分思想的利用,因为载重量p增加时,能装的货物v并不会减少。然后二分搜索答案范围内lef和righ里面的数,

#include
#include
using namespace std;
long long ans,righ,lef,mid,v;int n,m; int s[100009];
int check(int p){ int cnt=0;
	for(int j=0;jn>>m;lef=0;righ=100000*10000;
for(i=0;i 1){
	mid=(righ+lef)/2;
v=check(mid);
if(v>=n) righ=mid;
else lef=mid;
}
cout            
关注
打赏
1663570241
查看更多评论
0.0538s