【动态规划】【RQNOJ】可怜的Oliver
2010-07-18 19:47
302 查看
题目描述
1.背景描述BackgroundOliver作为本班的班主任,看到大家摘巧克力,很是生气。他把大家叫到一起,拷问大家是谁摘的,为什么摘。同学们是很团结的,无论班主任软硬兼施,威逼利诱。大家都不松口。所以班主任打发雷霆,罚大家抄写单词。其中有一个人(为了他的生命安全,在此不透露姓名),为了为大家解恨,在Oliver的价值0.01秘鲁币的盒饭里放入了秘密武器——苍蝇。
2.问题描述Description
放苍蝇事件最终还是被Oliver知道了,精明的Oliver还调查出了放苍蝇的人是XX,他要严厉的惩罚XX,惩罚XX写作业,布置给XX比平常多几十倍几百倍的作业,在假期的任意时刻他都有可能布置作业,天哪,XX的黄金周又泡汤啦。
XX的原计划有N分钟够他游玩,可是他必须服从Oliver,先做作业然后玩,从第一分钟开始到第N分钟结束。当XX从放假的第一分钟起就要开始赶作业。如果在同一时刻有多个作业需要完成,XX可以选其中的一个来做,而其余的则可以由其他的同学帮他来完成,反之如果只有一个作业,则该作业必须由XX去完成,假如某些作业开始时刻XX正在工作,则这些作业也由XX的同学来帮他完成。如果某作业于第P分钟开始,持续时间为T,则该作业将在第P+T-1分钟结束。
7.时间限制Time Limitation
每个测试点1s
注释Hint:
对于所有的N和K(1<=n<=10000,1<=k<=10000),出题者汉语不太好,不过题目意思还是比较清楚的,请大家海涵。
输入格式
输入数据第一行含两个用空格隔开的整数N和K,N表示XX的原计划玩的时间长(以分钟为单位),K表示Oliver布置的作业总数。接下来共有K行,每一行有两个用空格隔开的整数P和T,表示Oliver老师布置的作业从第P分钟开始,持续时间为T分钟,其中1<=p<=n,1<=p+t-1<=n。
输出格式
输出仅一行,包含一个整数,表示XX可能获得的最大空暇的时间。样例输入
#include<stdio.h> int a[20001],b[20001],f[20001]; int n,k,i,j; int main() { scanf("%d%d",&n,&k); for (int i=1;i<=k;++i) scanf("%d%d",&a[i],&b[i]); j=k; for (int i=n;i>=1;--i) { while (a[j]>i) --j; if (a[j]!=i) f[i]=f[i+1]+1; else while (a[j]==i) { if (f[i+b[j]]>f[i]) f[i]=f[i+b[j]]; --j; } } printf("%d/n",f[1]); return 0; }
相关文章推荐
- 【动态规划】【RQNOJ】可怜的Oliver
- 【解题报告】[动态规划] RQNOJ - PID38 / 串的记数
- rqnoj-390-地震了!-动态规划
- 【动态规划】【RQ198】可怜的波特
- 【动态规划】【RQNOJ】刘翔!加油!
- 动态规划 RQNOJ 吃西瓜 最大子段和三维版
- 【解题报告】[动态规划] RQNOJ - PID15 / 采药
- RQNOJ--15--采药(动态规划)
- 【动态规划】逃亡的准备rqnoj98
- 【动态规划】【RQNOJ】庆功会
- 【动态规划】【RQNOJ】大地的秘密
- Vijos P1577可怜的Oliver
- 【解题报告】[动态规划]RQNOJ - PID82 / 又上锁妖塔
- 【解题报告】[动态规划]RQNOJ - PID72 / 拔河比赛
- 【动态规划】【RQNOJ】书的复制
- 【解题报告】[动态规划] RQNOJ PID5 / 能量项链
- 【动态规划】【RQNOJ】第2题 开心的金明 C源码
- 【动态规划】【RQNOJ】公司聚会
- 【动态规划】【RQNOJ】马棚问题
- 【动态规划】【RQNOJ】科技庄园