为何永远是88

P1281 书的复制

```cpp #include<bits/stdc++.h> using namespace std; #define maxn 505 int n,k,a[maxn]; bool check(int m){ int s=0,t=1; for(int i=1;i<=n;i++){ if(s+a[i]>m){ t++; s=0; } s+=a[i]; if(s>m) return 0; } if(t<=k) return 1; else return 0; } void p(int m){ int t=0,s=k,ans[maxn][2]; ans[k][1]=n; for(int i=n;i>=1;i--){ if(t+a[i]>m){ t=0; ans[s--][0]=i+1; ans[s][1]=i; } t+=a[i]; } ans[s][0]=1; for(int i=1;i<=k;i++) cout<<ans[i][0]<<" "<<ans[i][1]<<endl; return; } void ef(int l,int r){ int m; while(l<r){ m=(l+r)/2; if(check(m)) r=m; else l=m+1; } p(r); return; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; ef(1,1000000000); return 0; } ``` @[SDHHENRY](/space/show?uid=85538) AC代码,参考一下
by Achtoria @ 2018-10-25 12:03:29


@[陈长](/space/show?uid=78386) Thanks
by SDHHENRY @ 2018-10-25 14:20:04


|