题解 P6249 【神帖】
这道题目我一看到就想起了经典题——关路灯
但是时间好像不太好搞啊!
我们可以枚举时间qwq
考虑 \(4\) 维 \(dp\) \(f_{i,j,t,0/1}\) 表示 \(zrl\) 看了第 \(i\) 页到第 \(j\) 页,此时时间为 \(t\)。
最后一维
如果是 \(0\) 就是在第 \(i\) 页。
如果是 \(1\) 就是在第 \(j\) 页。
为什么这样是对的?
我们会发现,首先为了最优 \(zrl\) 绝对不会刻意地去浪费时间,像这样

要往左走,一定会超过之前走到最左的点
要往右走,一定会超过之前走到最右的点
所以,我们可以开始转移了。
按照上面的结论 \(f_{i,j,t,1}\) 有 \(2\) 种可能
- 一种是 \(f_{i+1,j,t-(a_{i+1}-a_i),0}\)

- 一种是 \(f_{i+1,j,t-(a_j-a_i),1}\)

按照上面的结论 \(f_{i,j,t,0}\) 有 \(2\) 种可能
- 一种是 \(f_{i,j-1,t-(a_j-a_{j-1}),1}\)

- 一种是 \(f_{i,j-1,t-(a_j-a_i),0}\)

代码就很好写了:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
int x,v,t;
}a[210];
ll f[210][210][510][2],n,ans;//不开long long见祖宗!
bool cmp(node a,node b){
return a.x<b.x;
}
int work(int x,int y){//算能否get到快乐值
if(a[y].t>=x)return a[y].v;
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].x>>a[i].v>>a[i].t;
n++;//这里的话,我来解释一下,首先有可能所有帖子的页面都>0或<0,zrl也可能只向左走或只向又走。
sort(a+1,a+n+1,cmp);
for(int len=1;len<=n;len++)
for(int i=1;i+len<=n;i++){
int j=i+len;
if(a[i].x>0||a[j].x<0)continue;
int x=min(abs(a[i].x),abs(a[j].x))+a[j].x-a[i].x;
for(int t=x;t<=500;t++){
f[i][j][t][0]=max(f[i+1][j][max(t-(a[i+1].x-a[i].x),0)][0],f[i+1][j][max(t-(a[j].x-a[i].x),0)][1] )+work(t,i);//优美的转态转移方程。
f[i][j][t][1]=max(f[i][j-1][max(t-(a[j].x-a[i].x),0)][0],f[i][j-1][max(t-(a[j].x-a[j-1].x),0)][1] )+work(t,j);
ans=max(ans,max(f[i][j][t][0],f[i][j][t][1]));//优美的转态转移方程。
}
}
cout<<ans;//输出
return 0;
}
题解 P6249 【神帖】的更多相关文章
- DZY Loves Math 系列详细题解
BZOJ 3309: DZY Loves Math I 题意 \(f(n)\) 为 \(n\) 幂指数的最大值. \[ \sum_{i = 1}^{a} \sum_{j = 1}^{b} f(\gcd ...
- 【CF913F】Strongly Connected Tournament 概率神题
[CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...
- NOIP2005题解
传送门 考查题型 dp 模拟 贪心 T1 谁拿了最多的奖学金 题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末 ...
- 题解-MtOI2019 幽灵乐团
题面 MtOI2019 幽灵乐团 给定 \(p\),\(Cnt\) 组测试数据,每次给 \(a,b,c\),求 \[\prod_{i=1}^a\prod_{j=1}^b\prod_{k=1}^c\le ...
- 51Nod 算法马拉松21(迎新年)
这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...
- VIJOS1240 朴素的网络游戏[DP]
描述 佳佳最近又迷上了某款类似于虚拟人生的网络游戏.在游戏中,佳佳是某旅行团的团长,他需要安排客户住进旅馆.旅馆给了佳佳的旅行团一个房间数的限制.每一个房间有不同的容纳人数和价钱(这个价格是房间的总价 ...
- 蒟蒻修养之cf橙名计划2
29 由于第一篇没写题意导致大部分神题题解已经完全不知道在说啥了...所以还是重开一篇保平安... [303A]题意:求三个长度为$n(n<=10^5)$的排列$a,b,c$使得$a_i+b_i ...
- BZOJ2654 tree
Description 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. Input 第一行V,E,need分别表示点数,边数和需要的白色 ...
- 目前已经知道的乐视所有产品各个型号的强刷方法!更新X50
http://ui.letv.com/thread-43668-1-1.html 很多网友买来电视/盒子仅仅要看,还要折腾这个电视,有时候不小心把系统折腾死了,肿么办?危难之中显身手,我的神帖来了,敬 ...
随机推荐
- 实现子数组和绝对值差最小 - Objective-C
类似于背包问题,前提条件是数组全是正整数和0,先求和Sum,再从子数组中找出接近Sum/2的子数组 @interface TempState : NSObject @property (nonatom ...
- 面试的绝招(V1.0)
<软件自动化测试开发>出版了 测试开发公开课培训大讲堂 微信公众号:测试开发社区 测试开发QQ群:173172133 咨询QQ:7980068 咨询微信:zouhui1003it
- 疯狂补贴的4G+ 会是又一个资费陷阱吗?
会是又一个资费陷阱吗?" title="疯狂补贴的4G+ 会是又一个资费陷阱吗?"> 常言说得好,防火防盗防运营商--具有垄断性质的中国移动.联通.电信三大基础 ...
- 服务治理与RPC · 跬步
以前写过Django中使用zerorpc的方法,但是由于我们的Django是运行在gevent下,而zeromq需要启动一个后台进程处理消息,与gevent使用的greenlet携程是冲突的. 在Ja ...
- 使用Handler的步骤
使用Handler的大致流程: 1.首先创建一个Handler对象,可以直接使用Handler无参构造函数创建Handler对象,也可以继承Hander类,重写HandleMessage方法来创建Ha ...
- Runtime常见使用
一些语法 更改对象的类/获取对象的类 1234 CustomClass *class1 = [[CustomClass alloc]init];Class aclass =object_setClas ...
- 【转载】Java DecimalFormat 用法
转载只供个人学习参考,以下查看请前往原出处:http://blog.csdn.net/wangchangshuai0010/article/details/8577982 我们经常要将数字进行格式化, ...
- ubuntu 18.04 添加快快捷方式
1. 创建启动软件的快捷方式的文件 # cd ~/桌面 # vim pycharm18.1.desktop # 注意文件的后缀是 .desktop [Desktop Entry] Version=1. ...
- Failed to open the key database file. c;\\User\\w\\Destop\\SecureCRT_FX6.5.3\\Config\\KnowHosts\\Hostsmap.txt这个问题的解决方法
1.首先将这段错误在百度翻译上面查询一下,是什么意思,查询结果如下: 打开密钥数据库文件失败.C:\用户\ w \平台\ securecrt_fx6.5.3 \\ \\ \\ hostsmap.txt ...
- Safari配置WebApp----添加启动图和桌面图标让你的WebApp在ios设备上体验如原生一样
现在很多开发者的Web应用程序的设计样式和交互类似本机应用程序,例如,它的缩放比例适合iOS上的整个屏幕.当用户将其添加到主屏幕时,您可以通过使其看起来像本机应用程序一样,在iOS上为您的Web应用程 ...