博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【?】codeforces721E Road to Home(DP+单调队列)
阅读量:6572 次
发布时间:2019-06-24

本文共 935 字,大约阅读时间需要 3 分钟。

转换关系搞清楚了,但是关于那个单调性来处理DP的地方,还是不明白,应该是单调队列优化DP这个点不会,补一下代码,先学一下单调队列优化DP,

参考博客:

#include
#include
#include
using namespace std;const int maxn = 100005;int f[maxn], g[maxn];int main(){ int l, n, p, t; scanf("%d%d%d%d", &l, &n, &p, &t); int head =1, tail = 1; f[head] = 0, g[head] = -t; int ans = 0; for (int i = 1; i <= n; i++) { int x, y,ans1,ans2; scanf("%d%d", &x, &y); ans1 = ans2 = 0; if (head>1) head--; while (head <= tail&&g[head] + t <= y) { int nx = max(x, g[head] + t); int ny = y; if (f[head] + (ny - nx) / p > ans1) { ans1 = f[head] + (ny - nx) / p; ans2 = nx + (ny - nx) / p*p; } else if (f[head] + (ny - nx) / p == ans1) { ans2 = min(ans2,nx + (ny - nx) / p*p); } ++head; } if (ans1 > ans) { ans = ans1; tail++; f[tail] = ans1; g[tail] = ans2; } } printf("%d\n", ans); return 0;}

转载于:https://www.cnblogs.com/seasonal/p/10343659.html

你可能感兴趣的文章
easyui tab页面关闭根据回调函数刷新父tab页
查看>>
GPS围栏两个多边形相交问题的奇葩解法
查看>>
PHPstorm如何导入字体主题
查看>>
静态链表
查看>>
在VS中手工创建一个最简单的WPF程序
查看>>
python for 格式化字符串 list.count
查看>>
"网络适配器本地连接没有有效ip地址配置"错误的解决办法
查看>>
360随身WIFI作USB无线网卡的做法
查看>>
网站设计中很重要的概念div+浮动
查看>>
js平滑滚动到顶部,底部,指定地方 animate()
查看>>
OC-NSFileManager
查看>>
printf和sprintf
查看>>
数组分割
查看>>
O(1) O(n)
查看>>
iphone socket讲解
查看>>
CAS机制详解
查看>>
odoo开发笔记 -- 翻译机制及导入.po文件
查看>>
运维邮件
查看>>
Sql异常①
查看>>
横向无缝滚动
查看>>