bzoj 4590: [Shoi2015]自动刷题机

来源:互联网 发布:淘宝店铺运营方案 编辑:程序博客网 时间:2024/04/29 01:49

       二分答案sb题。

AC代码如下:

#include<iostream>#include<cstdio>#include<cstring>#define ll long long#define inf 100000000000000llusing namespace std;int n,m,a[100005];int calc(ll x){int i,ans=0; ll sum=0;for (i=1; i<=n; i++){sum=max(0ll,sum+a[i]);if (sum>=x){ sum=0; ans++; }}return ans;}int main(){scanf("%d%d",&n,&m);int i;for (i=1; i<=n; i++) scanf("%d",&a[i]);ll l=1,r=inf,mid;while (l<r){mid=(l+r)>>1;if (calc(mid)<=m) r=mid; else l=mid+1;}ll x=l; l=1; r=inf;while (l<r){mid=(l+r+1)>>1;if (calc(mid)>=m) l=mid; else r=mid-1;}l=x;if (calc(l)!=m || calc(r)!=m) puts("-1");else printf("%lld %lld\n",l,r);return 0;}

by lych

2016.8.3

0 0
原创粉丝点击