题面

题解

设$f[i]$表示将$[1,i]$修改为递增的最小代价,

$g[i]$表示将$[i,n]$修改为递减的最小代价。

$L[i]$表示将$[1,i]$修改为倒$\text V$的代价

$$ \therefore L[i]=min_{2<j<i}\left\{max(g[i]-g[j],f[j])\right\} $$

$R[i]$同理

$$ \therefore ans=min_{2<i<n-1}\left\{L[i] + R[i]\right\} $$

代码

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cctype>
  4. #include<climits>
  5. #include<algorithm>
  6. #define RG register
  7. #define file(x) freopen(#x".in", "r", stdin);freopen(#x".out", "w", stdout);
  8. #define clear(x, y) memset(x, y, sizeof(x))
  9. inline int read()
  10. {
  11. int data = 0, w = 1; char ch = getchar();
  12. while(ch != '-' && (!isdigit(ch))) ch = getchar();
  13. if(ch == '-') w = -1, ch = getchar();
  14. while(isdigit(ch)) data = data * 10 + (ch ^ 48), ch = getchar();
  15. return data * w;
  16. }
  17. const int maxn(1e5 + 10);
  18. int a[maxn], n, j;
  19. long long f[maxn], g[maxn], L[maxn], R[maxn], ans = LLONG_MAX;
  20. int main()
  21. {
  22. #ifndef ONLINE_JUDGE
  23. file(cpp);
  24. #endif
  25. n = read(), a[0] = -1, j = 2;
  26. for(RG int i = 1; i <= n; i++) a[i] = read();
  27. for(RG int i = 1; i <= n; i++)
  28. f[i] = f[i - 1] + std::max(a[i - 1] - a[i] + 1, 0);
  29. for(RG int i = n; i >= 1; i--)
  30. g[i] = g[i + 1] + std::max(a[i + 1] - a[i] + 1, 0);
  31. for(RG int i = 3; i < n - 1; i++)
  32. {
  33. while(j < i - 1 && std::max(f[j + 1], g[j + 1] - g[i])
  34. <= std::max(f[j], g[j] - g[i])) ++j;
  35. L[i] = std::max(f[j], g[j] - g[i]);
  36. }
  37. j = n - 1;
  38. for(RG int i = n - 2; i > 2; i--)
  39. {
  40. while(j > i + 1 && std::max(g[j - 1], f[j - 1] - f[i])
  41. <= std::max(g[j], f[j] - f[i])) --j;
  42. R[i] = std::max(g[j], f[j] - f[i]);
  43. }
  44. for(RG int i = 3; i < n - 1; i++) ans = std::min(ans, L[i] + R[i]);
  45. printf("%lld\n", ans);
  46. return 0;
  47. }

BZOJ2439【中山市选2011】序列的更多相关文章

  1. bzoj 2441 [中山市选2011]小W的问题

    bzoj 2441 [中山市选2011]小W的问题 Description 有一天,小W找了一个笛卡尔坐标系,并在上面选取了N个整点.他发现通过这些整点能够画出很多个"W"出来.具 ...

  2. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

  3. BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )

    先二分答案m,<=m的有m-∑(m/pi*pi)+∑(m/pi*pi*pj*pj)-……个符合题意的(容斥原理), 容斥系数就是莫比乌斯函数μ(预处理)... ----------------- ...

  4. BZOJ_2440_[中山市选2011]完全平方数_容斥原理+线性筛

    BZOJ_2440_[中山市选2011]完全平方数_容斥原理 题意: 求第k个不是完全平方数倍数的数 分析: 二分答案,转化成1~x中不是完全平方数倍数的数的个数 答案=所有数-1个质数的平方的倍数+ ...

  5. BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4805  Solved: 2325[Submit][Sta ...

  6. BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数

    BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数 题面 找出第k个不是平方数的倍数的数(1不是平方数, \(k \le 10^9\)). 题解 首先二分答案,问题就转化成了求\([ ...

  7. 【BZOJ 2440】 2440: [中山市选2011]完全平方数 (二分+容斥原理+莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数 ...

  8. bzoj2441 [中山市选2011]小W的问题(debug中)

    2441: [中山市选2011]小W的问题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 487  Solved: 186[Submit][Statu ...

  9. BZOJ_2438_[中山市选2011]杀人游戏 _强连通分量

    BZOJ_2438_[中山市选2011]杀人游戏 _强连通分量 Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手.警察能够对每一个人 ...

  10. BZOJ2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4920  Solved: 2389[Submit][Sta ...

随机推荐

  1. Linq排序方式与Lambda排序方式比较以及OrderBy、ThenBy的使用

    沿用之前某一篇文章的实体类与EF操作类代码.数据库中增加几条数据 Linq 的排序方式,下面例子是根据RoleId 升序,Name降序 EFContext<Member> efMember ...

  2. 初始Flask

    一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 Flask是一个基于P ...

  3. iOS中block类型大全

    iOS中block类型大全 typedef的block 作为属性的block 作为变量的block 作为方法变量入参的block 作为方法参数的block 无名block 内联函数的block 递归调 ...

  4. Error creating bean with name xxxx,xxxx must be provided

    原因: 继承父类的bean注入是set,get方法 问题: 自己的controller不能创建,因为需要的bean没有创建 解决方法: bean 注入,通过构造函数调用父类的set方法

  5. 解决qpidd服务安装不上的问题

    前几天对一个文件夹命名,忘记了qpidd的路径在这个文件夹的下面,导致后来qpidd用不了. 并且有打开计算机-管理-服务时,看到Advanced MessageQueuing Protocol 未启 ...

  6. 初识android界面布局

    1.活动 活动是android开发中最基本的概念,也是最容易吸引用户的地方,是一种可以包含用户界面的组件. Activity类中定义了7个回调方法,覆盖了活动生命周期的每一个环节.具体如下: (1)o ...

  7. SAP CX Upscale Commerce : SAP全新推出的电商云平台

    大家好,我是Andy Chen,是SAP成都研究院年轻的SAP CX Upscale Commerce (后面将会以Upscale简称)开发团队的一名产品经理.CX的全称是Customer Exper ...

  8. BZOJ 1821 Group 部落划分 并查集

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1821 题目大意: 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所 ...

  9. vue部署到tomcat

    # vue打包到tomcat部署步骤a.进入项目目录运行npm run devb.将dist目录复制到远程服务器下的tomcat/webapps下c.重启tomcatd.浏览器中访问 http:本机i ...

  10. Dictionary<string, object>

    Dictionary<string, object> dcic = JsonHelper.DataRowFromJSON(resultdepth); foreach (var depthk ...