[bzoj]4590: [Shoi2015]自动刷题机
来源:互联网 发布:网吧知乎 编辑:程序博客网 时间:2024/05/15 07:20
二分答案,暴力验证。找到一个最小满足的值与一个最大满足的值。
记得最后判断二分的是否正确。
#include <cstdio>#include <algorithm>#define ll long longusing namespace std;int n,k;ll w[100005];ll sum,x,y;inline ll pd(ll x){register int i;ll now=0,ret=0;for (i=1;i<=n;i++){now+=w[i];if (now<0) now=0;if (now>=x) ret++,now=0;}return ret;}inline ll efmi(ll l,ll r){ll mid,ret=0;while (l<=r){mid=(l+r)>>1;if (pd(mid)<=k) r=mid-1,ret=mid;else l=mid+1;}return ret;}inline ll efma(ll l,ll r){ll mid,ret=0;while (l<=r){mid=(l+r)>>1;if (pd(mid)>=k) l=mid+1,ret=mid;else r=mid-1;}return ret;}int main(){register int i,j;scanf("%d %d",&n,&k);for (i=1;i<=n;i++){scanf("%lld",&w[i]);sum+=abs(w[i]);}x=efmi(1,sum);y=efma(1,sum);if (pd(x)!=k||pd(y)!=k) printf("-1");else printf("%lld %lld",x,y);return 0;}
阅读全文
0 0
- bzoj 4590: [Shoi2015]自动刷题机
- BZOJ 4590: [Shoi2015]自动刷题机
- bzoj 4590: [Shoi2015]自动刷题机
- BZOJ 4590 [Shoi2015]自动刷题机
- 【BZOJ】4590 [Shoi2015]自动刷题机
- [bzoj]4590: [Shoi2015]自动刷题机
- bzoj 4590: [Shoi2015]自动刷题机
- [二分] BZOJ 4590 [Shoi2015]自动刷题机
- bzoj 4590: [Shoi2015]自动刷题机 二分
- BZOJ P4590[Shoi2015]自动刷题机
- 4590: [Shoi2015]自动刷题机
- 4590: [Shoi2015]自动刷题机
- 4590: [Shoi2015]自动刷题机
- BZOJ4590 [Shoi2015]自动刷题机
- BZOJ4590: [Shoi2015]自动刷题机
- bzoj4590: [Shoi2015]自动刷题机
- 【bzoj4590】[Shoi2015]自动刷题机 二分
- [bzoj4590][Shoi2015]自动刷题机 二分
- ConcurrentSkipListMap
- string 中的maketrans和translate
- 移动端client,page,screen之间的区别
- 表格与框架
- 获取手机中应用程序的包名
- [bzoj]4590: [Shoi2015]自动刷题机
- react实战:一个极简易的新闻站点
- JS的跨域的几种方式
- POJ 2376 Cleaning Shifts
- 华为提前批机试题目
- noip2003 数字游戏
- java数组转矩阵及部分操作
- J
- Ubuntu压缩、解压缩文件