SP283 NAPTIME - Naptime】的更多相关文章

SP283 NAPTIME - Naptime 题意: 在某个星球上,一天由N小时构成.我们称0-1点为第一个小时,1-2点为第二个小时,以此类推.在第i个小时睡觉能恢复Ui点体力.在这座星球上住着一头牛,它每天要休息B个小时,它休息的这B个小时可以不连续,可以分成若干段,但是在每一段的第一个小时不能恢复体力,从第二个小时开始才可以恢复体力. 为了身体健康,这头牛希望遵循生物钟,每天采用相同的睡觉计划.另外,因为时间是连续的,每天的第N个小时与下一天的第一个小时是相连的,这头牛只需要在N个小时内…
题目链接 先考虑如果只有一天,那么该怎么做. 设\(f[i][j][1]\)表示前\(i\)个小时睡了\(j\)个小时并且第\(j\)个小时正在睡觉时的最大体力,\(f[i][j][1]\)表示前\(i\)个小时睡了\(j\)个小时并且第\(j\)个小时没在睡觉时的最大体力. 则有 \[f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1])\] \[f[i][j][1]=max(f[[i-1][j-1][0],f[i-1][j-1][1])\] 边界条件:\(f[1]…
Luogu 一定要记得初始化为-inf!!! Description 在某个星球上,一天由N小时构成.我们称0-1点为第一个小时,1-2点为第二个小时,以此类推.在第i个小时睡觉能恢复Ui点体力.在这座星球上住着一头牛,它每天要休息B个小时,它休息的这B个小时可以不连续,可以分成若干段,但是在每一段的第一个小时不能恢复体力,从第二个小时开始才可以恢复体力. 为了身体健康,这头牛希望遵循生物钟,每天采用相同的睡觉计划.另外,因为时间是连续的,每天的第N个小时与下一天的第一个小时是相连的,这头牛只需…
目录 DP百题练(二) 区间 DP NOI1995 石子合并 IOI1998 Polygon CH5302 金字塔 USACO06FEB Treats for the Cows G/S LG1043 数字游戏 LG1063 能量项链 LG1005 矩阵取数游戏 LG3146 [USACO16OPEN]248 G 树形 DP LG1352 没有上司的舞会 CTSC1997 选课 LG1273 有线电视网 POJ3585 Accumulation Degree LG3478 [POI2008]STA…
http://codereview.stackexchange.com/questions/84697/timeout-watchdog-using-a-standby-thread he simple but generic timeout class to be used watching for network connections, user input, filesystem events, and is intended to have a very simple interfac…
Naptime Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:3374   Accepted: 1281 Description Goneril is a very sleep-deprived cow. Her day is partitioned into N (3 <= N <= 3,830) equal time periods but she can spend only B (2 <= B < N…
\(Naptime\) \(solution:\) 这道题不做多讲,它和很多区间DP的套路一致,但是这一道题它不允许断环成链,会超时.但是我们发现如果这只奶牛跨夜休息那么它在不跨夜的二十四个小时里一定也可达到休息时间的!所以我们只需要在做一次DP然后强制选则第一个小时休息即可. \(code:\) #include<iostream> #include<cstdio> #include<iomanip> #include<algorithm> #includ…
naptime 有一个长度为n的序列\(a_i\),首尾相接组成了一个环,现在要在这个环上选出若干个区间,使区间长度之和恰好为b,然后忽略区间的顺时针开头元素,权值累加区间中所有的数字,问权值的最大值,\(2 <= b < n <= 3830\). 解 注意到问题是一个环,所以应该拆环成链,而且是区间选择的问题,特别的地方在于,区间选择要忽略开头元素,于是我们需要保存该个元素是否被选, 所以设\(f[i][j][0/1]\)分别表示选到第i个数前面已经选了j个数第i个数选与不选的最大权值…
题目:http://poj.org/problem?id=2228 题意:将一天分为N小时,每小时都有一个价值w,有一头牛要睡觉,而它的睡觉是连续的,且第一小时不能算价值,即如果你睡了[a,b],则你获得的收益是w[a+1]+w[a+2]+……+w[b],而这头牛可以每天多次睡(可以理解成选若干个时间段睡觉),不过每天的睡觉总时间数不能超过B,求能获得的最大总收益.(不过值得注意的是,“1天”并不是从0~N-1,而可以是从任何一个小时开始到n小时之后,即可以从N-1睡到0) 分析: 先不考虑环:…
断环然后裸DP就好了... $f[i][j][k]$表示1号时间段没有被算入答案,到了第$i$个时间段,一共选了$j$个时间段,$k = 0 /1$表示第i个时间段有没有被算进答案的最优值 $g[i][j][k]$表示1号时间段被算入答案,到了第$i$个时间段,一共选了$j$个时间段,$k = 0 /1$表示第i个时间段有没有被算进答案的最优值,则$g$必须要选最后一个时间段 转移的时候直接枚举最后一个时间段又没有被算进答案就好了...方程看程序好了.. /*******************…