求dalao调一下,在线等!

P1182 数列分段 Section II

@[Biyaotian](/user/940379) 不要乱用 `unsigned`,因为你无法保证计算时不会出现负数。
by danlao @ 2024-02-18 19:59:43


@[Biyaotian](/user/940379) 把第三行改成`const int`
by DFs_YYDS @ 2024-02-18 20:00:38


有负吧@[Biyaotian](/user/940379)
by lmhlmhlmh @ 2024-02-18 20:14:04


谢谢dalao们,我再逝世
by Biyaotian @ 2024-02-19 09:28:00


WWW,害是没过,听取红色一片!!dalao们再帮着看一看吧呜呜呜!蒟蒻深感无力!!@yaodiguoan@DFs_YYDS@imhimhimh
by Biyaotian @ 2024-02-19 10:07:43


@[yaodiguoan](/user/1023793)
by Biyaotian @ 2024-02-19 10:08:17


@[DFs_YYDS](/user/1119406)
by Biyaotian @ 2024-02-19 10:08:48


@imhimhimh
by Biyaotian @ 2024-02-19 10:09:17


@[Biyaotian](/user/940379) 把`unsighned`删了
by DFs_YYDS @ 2024-02-19 11:45:14


@[DFs_YYDS](/user/1119406) 谢谢 过了不过换了一种形式```cpp #include<bits/stdc++.h> using namespace std; int n,m,a[100010],l,r,mid,ans; bool cheak(int x){//x是门槛 int cnt=1; long long sum=0; for(int i=1;i<=n;i++){//求需要分几组 if(sum+a[i]<=x){ sum+=a[i];//更新sum } else{ cnt++;//新开一组 sum=a[i];//注意a[i]不是清零 } } if(cnt<=m){//注意 return true; } else{ return false; } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; l=max(l,a[i]); r+=a[i]; } while(l<=r){ mid=(l+r)/2; if(cheak(mid)){ ans=mid; r=mid-1; } else{ l=mid+1; } } cout<<ans; return 0; } ```
by Biyaotian @ 2024-02-19 11:56:31


| 下一页