最优装载(二分答案)
Posted wronin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最优装载(二分答案)相关的知识,希望对你有一定的参考价值。
给n个货物,k辆车,求每辆车的最大装载量的最小值
#include <iostream> #include <queue> #include <cstdio> #include <cstring> using namespace std; typedef long long ll; int n,k; int a[500]; int check(ll p) { int pos=0; for(int i=0;i<k;i++) { ll s=0; while(s+a[pos]<=p) { s+=a[pos++]; if(pos==n) return n; } } return pos; } int main( ) { cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; ll l=0,r=1e5*1e4; while(r-l>1) { int mid=(l+r)/2; if(check(mid)>=n) r=mid; else l=mid; } cout<<r<<endl; return 0; } /* 5 3 8 1 7 3 9 */
以上是关于最优装载(二分答案)的主要内容,如果未能解决你的问题,请参考以下文章