【NOIP2013模拟联考5】军训(training)
Description
HYSBZ 开学了!今年HYSBZ 有n 个男生来上学,学号为1…n,每个学生都必须参加军训。在这种比较堕落的学校里,每个男生都会有Gi 个女朋友,而且每个人都会有一个欠扁值Hi。学校为了保证军训时教官不会因为学生们都是人生赢家或者是太欠扁而发生打架事故,所以要把学生们分班,并做出了如下要求:
1.分班必须按照学号顺序来,即不能在一个班上出现学号不连续的情况。
2.每个学生必须要被分到某个班上。
3.每个班的欠扁值定义为该班中欠扁值最高的那名同学的欠扁值。所有班的欠扁值之和不得超过Limit。
4.每个班的女友指数定义为该班中所有同学的女友数量之和。在满足条件1、2、3 的情况下,分班应使得女友指数最高的那个班的女友指数最小。
请你帮HYSBZ 的教务处完成分班工作,并输出女友指数最高的班级的女友指数。
输入数据保证题目有解。
Input
第一行仅2 个正整数n, Limit,分别为学生数量和欠扁值之和的上限。
接下来n 行每行2 个正整数Hi,Gi,分别为学号为i 的学生的欠扁值和女友数。
Output
仅1 个正整数,表示满足分班的条件下女友指数最高的班级的女友指数。
Sample Input
4 6
4 3
3 5
2 2
2 4
Sample Output
8
【样例解释】
分班按照(1,2),(3,4)进行,这时班级欠扁值之和为4+2=6<=Limit,而女友指数最高的班级为(1,2),为8。容易看出该分班方案可得到最佳答案。
Data Constraint
对于20%的数据:n,Limit<=100
对于40%的数据:n<=1000
对于100%的数据:1<=n,Gi<=20000,1<=Hi,Limit<=10^7
.
.
.
.
.
分析
题目是求最大值最小,所以应该二分。
.
.
.
.
.
程序:
#include <iostream>
#include <string.h>
using namespace std;
long long b[20001],f[20002],lim,mid,w,ans;
int n,k,t,tj,q[20001],next[20001],a[20001],c[20001];int work(int x)
{int l=x,r=n,mid1=(l+r)/2;while (l<r){mid1=(l+r)/2;if (b[mid1]-b[x-1]>=mid) r=mid1; else l=mid1+1;}return l;
}bool check()
{memset(f,127,sizeof(f));f[1]=0;for (int i=1;i<=n;i++){int x=i,w=q[x],k=work(i);if (b[k]-b[i-1]>mid) k--;while (x<=k){f[x]=min(f[x],f[i]+w);w=q[x];x=next[x];}f[k+1]=min(f[k+1],f[i]+w);}if (f[n+1]>lim) return 0; else return 1;
}int main()
{cin>>n>>lim;for(int i=1;i<=n;i++){int x;cin>>q[i]>>x;b[i]=b[i-1]+x;}tj=1;a[1]=n+1;c[1]=2147483647;for (int i=n;i;i--){while (q[i]>=c[tj])tj--;next[i]=a[tj];tj++;c[tj]=q[i];a[tj]=i;}int l=1,r=b[n];ans=b[n];while (l<=r){mid=(l+r)/2;if (check()){if (mid<ans) ans=mid;r=mid-1;}else l=mid+1;}cout<<ans;
}
转载于:https://www.cnblogs.com/YYC-0304/p/9499915.html
【NOIP2013模拟联考5】军训(training)相关推荐
- JZOJ 3461. 【NOIP2013模拟联考5】小麦亩产一千八(kela)
3461. [NOIP2013模拟联考5]小麦亩产一千八(kela) (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Det ...
- jzoj 3461. 【NOIP2013模拟联考5】小麦亩产一千八(math)
3461. [NOIP2013模拟联考5]小麦亩产一千八 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hen ...
- JZOJ 3468. 【NOIP2013模拟联考7】OSU!(osu)
Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为一个长 ...
- 【NOIP2013模拟联考6】选课(select)
Description 你真的认为选课是那么容易的事吗?HYSBZ的ZY同志告诉你,原来选课也会让人产生一种想要回到火星的感觉.假设你的一周有n天,那么ZY编写的选课系统就会给你n堂课.但是该系统不允 ...
- 【NOIP2013模拟联考5】休息(rest)
Description 休息的时候,可以放松放松浑身的肌肉,打扫打扫卫生,感觉很舒服.在某一天,某LMZ 开始整理他那书架.已知他的书有n 本,从左到右按顺序排列.他想把书从矮到高排好序,而每一本书都 ...
- JZOJ 3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll)
题目 Description 在美鱼和理树后援团拯救世界的同时,外表柔弱的理树也开始坚强起来,思考着离开这个世界的办法.误打误撞地,她遇上了正在教室破坏课桌打开迷宫入口的沙耶.沙耶告诉理树,这个世界的 ...
- JZOJ 3456. 【NOIP2013模拟联考3】恭介的法则(rule)
题目 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时,这个世界却发生了天翻覆地的变化:地面开始下沉,天空开始变成血红色,海水沸腾--一幅 ...
- JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)
题目 Description 从前在一个美好的校园里,有一只(棵)可爱的弯枝理树.她内敛而羞涩,一副弱气的样子让人一看就想好好疼爱她.仅仅在她身边,就有许多女孩子想和她BH,比如铃,库特,等等.不过, ...
- [jzoj 3461]【NOIP2013模拟联考5】小麦亩产一千八 {Fibonacci数列}
题目 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hengyang School for Boys & ...
最新文章
- dubbo学习笔记 第三章简介dubbo的工作原理
- python 机器移植
- Distributed Systems笔记-Cryptographic Protocols
- 利用滞后——超前系统解决高阶随动系统(课程设计)
- 在C#中利用DirectX实现声音播放
- springMVCs下载
- 成都电子计算机实验中学 孙蕾,痴迷物理 成都男孩保送清华最牛的计算机专业实验班...
- 《全唐诗》前言和后记
- 条件概率与条件概率举例
- Pandas DataFrame索引和列属性
- SI 9000 及阻抗匹配学习笔记(二)
- html+jQuery实现拖动滑块图片拼图验证码插件,移动端适用
- Android 文件选择/文件管理
- vue 登陆成功后携带不了后台传来的 set-cookie 并携带请求错误处理
- oracle 判断条件不在某一时间范围内(not between)
- WIN7下默认网关丢失该如何解决
- shmget() -- 建立共享内存[zz] - [LINUX]
- 第四章、Tibbo Basic
- 老版三星笔记本识别不到U盘启动解决办法
- 新形势下,企业如何做好数据安全治理?