2216: [Poi2011]Lightning Conductor

Time Limit: 25 Sec  Memory Limit: 64 MB
Submit: 1292  Solved: 443
[Submit][Status][Discuss]

Description

已知一个长度为n的序列a1,a2,...,an。
对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j))

Input

第一行n,(1<=n<=500000)
下面每行一个整数,其中第i行是ai。(0<=ai<=1000000000)

Output

n行,第i行表示对于i,得到的p

Sample Input

6
5 3 2 4 2 4

Sample Output

2 3 5 3 5 4

式子转化一下,把p拉到左边

题目要找最小的非负整数p使得对于所有的j∈n都满足上面公式,那么可以得出

也就是找出最优决策点j满足a[j]-a[i]+sqrt(|i-j|)最大

1D/1D动态规划模型,而且因为更号函数差分后单调递减,很容易证明决策单调性

不过这题不同的是,一般都是j=1到j=i-1,而这个是j=1到j=n,所以要正着反正各求一次最大

也可以写个像http://blog.csdn.net/jaihk662/article/details/78178729这题一样的二分

具体看程序

#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
int a[500005];
double dp1[500005], dp2[500005];
void Sech(int l, int r, int L1, int R1, int L2, int R2)
{int i, m, x1, x2;if(l>r)return;m = (l+r)/2;dp1[m] = dp2[m] = -2147400000;for(i=L1;i<=min(m,R1);i++){if(a[i]+sqrt(m-i)>=dp1[m])dp1[m] = a[i]+sqrt(m-i), x1 = i;}for(i=R2;i>=max(m,L2);i--){if(a[i]+sqrt(i-m)>=dp2[m])dp2[m] = a[i]+sqrt(i-m), x2 = i;}Sech(l, m-1, L1, x1, L2, x2);Sech(m+1, r, x1, R1, x2, R2);
}
int main(void)
{int n, i;scanf("%d", &n);for(i=1;i<=n;i++)scanf("%d", &a[i]);Sech(1, n, 1, n, 1, n);for(i=1;i<=n;i++)printf("%d\n", (int)(ceil(max(dp1[i], dp2[i]))-a[i]));return 0;
}

bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)相关推荐

  1. BZOJ2216 [Poi2011]Lightning Conductor 【决策单调性dp】

    题目链接 BZOJ2216 题解 学过高中数学都应知道,我们要求\(p\)的极值,参变分离为 \[h_j + sqrt{|i - j|} - h_i \le p\] 实际上就是求\(h_j + sqr ...

  2. BZOJ 2216 Poi2011 Lightning Conductor 动态规划

    题目大意:给定一个序列aia_i,对于每一个ii求⌈max{aj+|i−j|−−−−−√}−ai⌉\lceil max\{ a_j+\sqrt{|i-j|}\}-a_i\rceil 看了题解才知道是决 ...

  3. CF834D. The Bakery(线段树优化dp 决策单调性优化dp)

    linkkkkk 题意: 将一个长度为 n 的序列分为 m段,使得总价值最大. 一段区间的价值表示为区间内不同数字的个数. n≤35000,m≤50 思路: 考虑朴素的dpdpdp方程:dp[i][j ...

  4. BZOJ2216: [Poi2011]Lightning Conductor

    第一道此类的题,所以这是一篇假的博客,定理不会证明不理性 也不一定对 我是从这篇博客看的 = = 很显然是让你求 p[i] = max{a[j] + sqrt(i - j)} - a[i] 就是 ma ...

  5. [BZOJ2216][Poi2011]Lightning Conductor[决策单调性优化]

    最初在HDU的ACM模板上看到这个分治的DP优化 用这个的前提是不强制在线(f[i]不由前面的f转移过来)且决策单调 \[ \forall j\in \left[ \text{1,}n \right] ...

  6. bzoj 4709: [Jsoi2011]柠檬(分段DP+决策单调性)

    4709: [Jsoi2011]柠檬 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 240  Solved: 105 [Submit][Status ...

  7. BZOJ4899: 记忆的轮廓 期望DP 决策单调性

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=4899 容易发现树形结构是骗人的...走到错误分叉的影响是可以预处理的常数,所以就相当于一个序列 ...

  8. bzoj2687 交与并(贪心+dp+决策单调性+分治)

    双倍经验:portal #include <cstdio> #include <cstring> #include <algorithm> #include < ...

  9. Codeforces Round #190 (Div. 1): E. Ciel and Gondolas(决策单调性DP+wqs二分)

    E. Ciel and Gondolas 题意: bzoj5311:https://www.lydsy.com/JudgeOnline/problem.php?id=5311 同一道题目,但是bzoj ...

最新文章

  1. conda不是内部或外部命令
  2. RequireJs入门(一)
  3. windows dos命令窗口的环境变量
  4. 赞!这样构建微服务架构,实在是太轻松了!
  5. cad记忆口诀_CAD制图口诀你值得拥有!
  6. 推荐算法炼丹笔记:CTR点击率预估系列入门手册
  7. 基于Guava API 轻松落地观察者模式
  8. 使用C#快速生成二维码 | 真正跨平台方案
  9. java中configmanager_Spring4新的javaConfig注解
  10. 工业交换机与光纤收发器的区别
  11. jq追加元素最前面_DNF:哈林史诗百鬼夜行最理想的首饰搭配,海博伦应选贤者之欲...
  12. Qt - QVariant
  13. 用Redis客户端工具连接Redis
  14. html表格ppt,HTML表格.ppt
  15. 从零到一,美芽的技术实战
  16. 空间想象力差学计算机,空间思维想象力差怎么办
  17. Java技术实验三 货物进销管理系统
  18. 英语差能学好Python吗?学Python有捷径吗?
  19. 逍遥游 一致性和哥德尔两大定理—— 读哥德尔之八
  20. AV1:谷歌微软等联合打造的新视频压缩技术

热门文章

  1. python编程入门经典-总算理解python编程入门经典教程
  2. python用什么编译器-python应选什么编译工具
  3. 广义表取表头表尾_数据结构广义表的递归算法
  4. npm ERR! Unexpected end of JSON input while parsing near '...Comment: https://open'
  5. foxmail邮件加载失败重试_Foxmail提示错误的解决方案
  6. 手机端页面自适应解决方案—rem布局进阶版
  7. LeetCode 172 阶乘后的0
  8. sql出现列名无效的原因_SQL数据库中的数据类型与表结构的创建
  9. php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
  10. MyBatis传入参数为0时条件不生效