luogu p3515 Lightning Conductor
luogu p3515 Lightning Conductor
给定一个长度为n的序列,对于每一个i∈[1,n]i∈[1,n]i∈[1,n],求出一个最小的非负整数p,使得对于所有的j∈[1,n]j∈[1,n]j∈[1,n],都有aj<=ai+p−∣i−j∣a_j<=a_i+p-\sqrt{|i-j|}aj<=ai+p−∣i−j∣
通过这个题学习到两点,一个是用分治的方法解决1D1D类型的四边形优化dp问题,另一个是根据凸性来得到四边形不等式。
稍微对于原来的式子做一点变化,可以得到:
pi=max(aj+∣i−j∣−ai)p_i = max(a_j+\sqrt{|i-j|} - a_i)pi=max(aj+∣i−j∣−ai)取相反数之后,pi=min(ai−aj−∣i−j∣)p_i=min(a_i-a_j-\sqrt{|i-j|})pi=min(ai−aj−∣i−j∣)其中−x-\sqrt{x}−x为下凸函数,所以可以满足决策单调性。
const int N = 500010, inf = 1e9, eps = 1e-6;
int a[N];
double ans[N];void solve1(int l, int r, int m_l, int m_r)
{if (l > r) return;if (l == r){for (int i = m_l; i <= min(m_r, l); i ++){double temp = a[i];temp += sqrt((double)l - i);ans[l] = max(ans[l], temp);}return;}int mid = (l + r) >> 1, k;double mx = -inf;for (int i = m_l; i <= min(m_r, mid); i ++){double temp = a[i];temp += sqrt((double)mid - i);if (temp > mx){mx = temp;k = i;}}ans[mid] = max(ans[mid], mx);solve1(l, mid - 1, m_l, k);solve1(mid + 1, r, k, m_r);return;
}void solve2(int l, int r, int m_l, int m_r)
{if (l > r) return;if (l == r){for (int i = m_r; i >= max(m_l, l); i --){double temp = a[i];temp += sqrt((double)i - l);ans[l] = max(ans[l], temp);}return;}int mid = (l + r) >> 1, k;double mx = -inf;for (int i = m_r; i >= max(mid, m_l); i --){double temp = a[i];temp += sqrt((double)i - mid);if (temp > mx){mx = temp;k = i;}}ans[mid] = max(ans[mid], mx);solve2(l, mid - 1, m_l, k);solve2(mid + 1, r, k, m_r);return;
}int main()
{int T = 1;//T = read();while (T --){int n;n = read();for (int i = 1; i <= n; i ++)a[i] = read();solve1(1, n, 1, n);solve2(1, n, 1, n);for (int i = 1; i <= n; i ++)printf ("%d\n", (int)ceil(ans[i] - (double)a[i]));}return 0;
}
luogu p3515 Lightning Conductor相关推荐
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
2216: [Poi2011]Lightning Conductor Time Limit: 25 Sec Memory Limit: 64 MB Submit: 1292 Solved: 443 ...
- P3515-[POI2011]Lightning Conductor【整体二分,决策单调性】
正题 题目链接:https://www.luogu.com.cn/problem/P3507 题目大意 nnn个数字的一个序列aaa,对于每个位置iii求一个pip_ipi使得对于任意jjj满足 p ...
- [BZOJ2216][Poi2011]Lightning Conductor[决策单调性优化]
最初在HDU的ACM模板上看到这个分治的DP优化 用这个的前提是不强制在线(f[i]不由前面的f转移过来)且决策单调 \[ \forall j\in \left[ \text{1,}n \right] ...
- BZOJ2216: [Poi2011]Lightning Conductor
第一道此类的题,所以这是一篇假的博客,定理不会证明不理性 也不一定对 我是从这篇博客看的 = = 很显然是让你求 p[i] = max{a[j] + sqrt(i - j)} - a[i] 就是 ma ...
- BZOJ2216 [Poi2011]Lightning Conductor 【决策单调性dp】
题目链接 BZOJ2216 题解 学过高中数学都应知道,我们要求\(p\)的极值,参变分离为 \[h_j + sqrt{|i - j|} - h_i \le p\] 实际上就是求\(h_j + sqr ...
- BZOJ 2216 Poi2011 Lightning Conductor 动态规划
题目大意:给定一个序列aia_i,对于每一个ii求⌈max{aj+|i−j|−−−−−√}−ai⌉\lceil max\{ a_j+\sqrt{|i-j|}\}-a_i\rceil 看了题解才知道是决 ...
- 基础省选+NOI-第4部分 动态规划
1.期望概率DP [整理]简单的数学期望和概率DP [整理]简单的数学期望和概率DP - nimphy - 博客园 期望&概率dp总结 期望&概率dp总结_十分残念的博客-CSDN博客 ...
- 省选+NOI 第一部分 动态规划DP
期望概率DP [整理]简单的数学期望和概率DP [整理]简单的数学期望和概率DP - nimphy - 博客园 期望&概率dp总结 期望&概率dp总结_十分残念的博客-CSDN博客 期 ...
- 2019年暑假慈溪集训(更新ing)
前言 换了一个地方被吊打... \(Aug\ 5th\) 今天早上\(10\)点左右出发了,中午在服务区吃饭,下午\(4\)点左右才到. 这次和\(XZY\)徐教练.\(LTL\)蓝指导.\(hl66 ...
最新文章
- SQL Server Integration Services 包的开发与部署初探
- Python的seaborn库(图比较炫)
- 如何搭建一个“不可告人的”私人专属网盘?教程拿去
- 浅谈 SQL Server 内部运行机制
- 更改windows2003远程最大连接数
- (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- 【Openstack】实录手动部署Openstack Rocky 双节点(4)- Nova
- 浅说项目管理中的Action以及3W1P原则
- [android源码分析]sdp Server的启动分析
- opencv中很有趣的仿射变换(Affine Transformation)
- 视频显示器与服务器之间使用什么线连接,显示器连接线有哪些?四种主流连线科普。...
- oppoa5降级教程_OPPO A5官方原厂固件rom刷机包_全量系统降级包回退包下载A.14版
- 如何实现Win7远程桌面关机和重启
- 扇形面积公式推导过程
- 明日之后到底要不要加营地?不加营地能玩吗?
- 【AngularJs】Angular双向数据绑定
- VUE+VSCODE(新建一个项目)
- GVM(openVAS)中scan configs为空的问题解决
- openfeign接口启动报错: is not assignable to interface feign.hystrix.FallbackFactory
- Qtdesigner设计实例——计算器 +可执行文件exe制作