0
已解决
包涵宇
中级天翼
中级天翼
看一看好不好?
看完!
大佬一定能AC!
4055
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,len[100005];
bool check(int l){
for(int i=n;i>=1;i--)if(len[i]>l)return 0;
int j=1,cnt=0,t=0;
for(int i=n;i>=j;i--){
if(t+len[i]>l)
t=0,cnt++;
t+=len[i];
if(t+len[j]>l)
t=0,cnt++;
t+=len[j],j++;
}
if(cnt<=m)return 1;
return 0;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>len[i];
sort(len+1,len+1+n);
int l=1,r=1000000000;
while(l<r){
int mid=(l+r)/2;
if(check(mid))r=mid;
else l=mid+1;
}
cout<<l;
return 0;
}
只要改check函数!!!快!!!
介绍:l:卡车车厢最长长度最多为l
len:木材长度
包涵宇在2020-09-23 18:10:37追加了内容
快!