[BZOJ4658]rescue
2016-09-05 19:54
323 查看
傻傻的NBC好久没更博啦.
似乎荒废了.
要这博客何用..
好吧好吧切入正题
f[x] 表示(最后读的一页是(第x个感兴趣的页)时拯救的最多脑细胞数量)
方便起见令T[0]=K,T[N+1]=M,B[0]=B[N+1]=0
最终答案是f[N+1]
f[x]=maxx−1i=0f[i]+ceil((T[x]−T[i])/D)∗A
于是得到了O(N2)的算法
现在睁大你可爱的小眼睛盯着这个可爱的DP方程30秒
f[x]=maxx−1i=0f[i]+ceil((T[x]−T[i])/D)∗A
ceil((T[x]−T[i])/D)变成什么比较好呢…
ceil((T[x]−T[i])/D)=T[x]/D−T[i]/D+[T[x] mod D>T[i] mod D]
原DP方程biu~~一下变成了
f[x]=max(max0<=i<x且T[i] mod D<T[x] mod D(f[i]+T[i]/D∗A−A),max0<=i<x且T[i] mod D>=T[x] mod D(f[i]+T[i]/D∗A))−T[x]/D∗A
// 其中除号是整除,请委屈地捏着鼻子看完
对着T[i] mod D建出线段树,每次在线段树的T[i] mod D位置插入f[i]+T[i]/D∗A
啊好简单,为什么要写那么简单的题的题解呢
因为我只会做简单题呀
似乎荒废了.
要这博客何用..
好吧好吧切入正题
f[x] 表示(最后读的一页是(第x个感兴趣的页)时拯救的最多脑细胞数量)
方便起见令T[0]=K,T[N+1]=M,B[0]=B[N+1]=0
最终答案是f[N+1]
f[x]=maxx−1i=0f[i]+ceil((T[x]−T[i])/D)∗A
于是得到了O(N2)的算法
#include <cstdio> long long f[100002]; int K, M, D, A, N, T[100002], B[100002]; inline long long max(long long x, long long y) { return x > y ? x : y; } int main() { scanf("%d%d%d%d%d", &K, &M, &D, &A, &N); T[0] = K, T[N + 1] = M; for (int i = 1; i <= N; i++) scanf("%d%d", T + i, B + i); for (int i = 1; i <= N + 1; i++) { f[i] = -1ll << 62; for (int j = 0; j < i; j++) f[i] = max(f[i], f[j] - (T[i] - T[j] + D - 1) / D * A); f[i] += B[i]; } printf("%lld\n", f[N + 1]); return 0; }
现在睁大你可爱的小眼睛盯着这个可爱的DP方程30秒
f[x]=maxx−1i=0f[i]+ceil((T[x]−T[i])/D)∗A
ceil((T[x]−T[i])/D)变成什么比较好呢…
ceil((T[x]−T[i])/D)=T[x]/D−T[i]/D+[T[x] mod D>T[i] mod D]
原DP方程biu~~一下变成了
f[x]=max(max0<=i<x且T[i] mod D<T[x] mod D(f[i]+T[i]/D∗A−A),max0<=i<x且T[i] mod D>=T[x] mod D(f[i]+T[i]/D∗A))−T[x]/D∗A
// 其中除号是整除,请委屈地捏着鼻子看完
对着T[i] mod D建出线段树,每次在线段树的T[i] mod D位置插入f[i]+T[i]/D∗A
啊好简单,为什么要写那么简单的题的题解呢
因为我只会做简单题呀
相关文章推荐
- 347. Top K Frequent Elements
- UVA - 10534 Wavio Sequence (二分法最长上升子序列)
- UI06滚动视图
- UI05UITabBarController
- String,StringBuilder,StringBuffer
- ui-router带参数的ui-sref配置
- 第一节:简单的请求(Requests)和响应(Responses)
- UIScrollView+横置UICollectionView实现滑动返回(以及每页都可滑动返回)
- zImage与uImage引发的思考
- vue.js学习笔记(相关概念)
- ue4 Xml文件读取小结
- iOS -- UIPopoverPresentationController 实现弹框
- requests应用step1
- iOS - uiimage和uicolor相互转化
- 长时间停留在calculating requirements and dependencies 的解决方案
- leetcode——Is Subsequence
- Vuejs——(10)组件——父子组件通信
- 解决问题:Assertion failure in -[UIView layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2935.137/UIVie
- iOS判断UIView是否显示在屏幕上
- mardown-guidance-self.md