显然的DP是,dp[i][j][val]

val是1e6的

简化

发现,其实决策很有限,最优解的i-1的val选择有限

题解

这里的一个trick是,f[i][j][0]转移不考虑a[i]和a[i-1]的大小关系,如果不计算到j的话,只能更差,而且之后会有一种方案记录到

这样,保留了一种可能的a[i]>a[i-1]的0状态,所以后面1的转移就存在这种情况。

代码:

#include<bits/stdc++.h>
#define reg register int
#define il inline
#define numb (ch^'0')
using namespace std;
typedef long long ll;
il void rd(int &x){
char ch;x=;bool fl=false;
while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true);
for(x=numb;isdigit(ch=getchar());x=x*+numb);
(fl==true)&&(x=-x);
}
namespace Miracle{
const int N=;
const int inf=0x3f3f3f3f;
int f[N][N][];
int a[N];
int n;
int main(){
rd(n);
for(reg i=;i<=n;++i) rd(a[i]);
memset(f,inf,sizeof f);
f[][][]=,f[][][]=;
for(reg i=;i<=n;++i){
for(reg j=;j<=(i+)/;++j){
f[i][j][]=min(f[i-][j][],f[i-][j][]);
f[i][j][]=min(f[i-][j-][]+max(,a[i-]-a[i]+),f[i-][j-][]+max(,min(a[i-]-,a[i-])-a[i]+));
f[i][j][]=f[i-][j][]+max(,a[i]-a[i-]+);
}
}
for(reg k=;k<=(n+)/;++k){
printf("%d ",min(f[n][k][],min(f[n][k][],f[n][k][])));
}
return ;
} }
signed main(){
Miracle::main();
return ;
} /*
Author: *Miracle*
Date: 2019/2/22 21:32:02
*/

CF1012C Hills的更多相关文章

  1. CF1012C Hills 题解【DP】

    思路还是比较简单的 dp 吧,但是就是想不出来-甚至类似的方程都被自己推翻了 Description Welcome to Innopolis city. Throughout the whole y ...

  2. 洛谷 CF1012C Hills (动态规划)

    题目大意:有n个山丘 , 可以在山丘上建房子 , 建房子的要求是 : 该山丘的左右山丘严格的矮于该山丘 (如果有的话),你有一架挖掘机,每单位时间可以给一个山丘挖一个单位的高度,问你想要建造 1,2, ...

  3. 【线型DP】CF1012C Hills 小山坡

    来了来了. 题目: 给你n个数,你一次操作可以把某一个数-1(可以减为负数),你的目标是使任意的k个数严格小于它旁边的两个数(第一个数只用严格小于第二个数,第n个数只用严格小于第n-1个数),问最少需 ...

  4. 洛谷 CF1012C Hills(动态规划)

    题目大意: 有几座山,如果一座山左右两边的山比它矮,那么可以在这个山上建房子,你有一台挖掘机,每天可以挖一座山一米,问你需要花多少代价可以分别盖1.2.3--座房子.(给出山的数量,以及每座山的高度) ...

  5. Gym 100531H Problem H. Hiking in the Hills 二分

    Problem H. Hiking in the Hills 题目连接: http://codeforces.com/gym/100531/attachments Description Helen ...

  6. Codeforces 1012C Hills【DP】*

    Codeforces 1012C Hills Welcome to Innopolis city. Throughout the whole year, Innopolis citizens suff ...

  7. HDU 6357.Hills And Valleys-字符串非严格递增子序列(LIS最长非下降子序列)+动态规划(区间翻转l,r找最长非递减子序列),好题哇 (2018 Multi-University Training Contest 5 1008)

    6357. Hills And Valleys 自己感觉这是个好题,应该是经典题目,所以半路选手补了这道字符串的动态规划题目. 题意就是给你一个串,翻转任意区间一次,求最长的非下降子序列. 一看题面写 ...

  8. Gym 101064 D Black Hills golden jewels 【二分套二分/给定一个序列,从序列中任意取两个数形成一个和,两个数不可相同,要求求出第k小的组合】

    D. Black Hills golden jewels time limit per test 2 seconds memory limit per test 256 megabytes input ...

  9. LightOJ 1063 Ant Hills

    Ant Hills Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on LightOJ. Original ...

随机推荐

  1. 2017-2018-2 20155230《网络对抗技术》实验1:PC平台逆向破解(5)M

    1.直接修改程序机器指令,改变程序执行流程 2.通过构造输入参数,造成BOF攻击,改变程序执行流 3.注入Shellcode并执行 4.实验感想 注:因为截图是全屏所以右键图片在新的标签页打开观看更加 ...

  2. Spring @Value注入值失败,错误信息提示:Could not resolve placeholder

    问题根源: @Value("${wx.app.config.appid}") public Object appid; 异常信息: Caused by: java.lang.Ill ...

  3. maven mvn package 打包项目时,出现错误导致失败的解决方法

    解决思路:看报错时在maven打包过程中的哪一步,然后看报错内容,解决报错内容即可,如果是实在不好解决的部分,看看能不能设置不检测,能打包出来就行. 这里是因为mybatis逆向工程插件出现异常所以中 ...

  4. 阿里云centos 安装禅道

    下载 我的阿里云服务器系统是 centos6.8 64 位,下载的禅道版本是 Linux 64位一键安装包(适用于Linux 64位) 由于阿里云服务器没桌面,所以下载用不了浏览器,可考虑在本地下载后 ...

  5. 初级字典树查找在 Emoji、关键字检索上的运用 Part-1

    系列索引 Unicode 与 Emoji 字典树 TrieTree 与性能测试 生产实践 前言 通常用户自行修改资料是很常见的需求,我们规定昵称长度在2到10之间.假设用户试图使用表情符号 ‍

  6. Asp.Net_后台代码访问前台html标签

    //单击按钮后批量改变li元素的内联文本值及样式 ; i <= ; i++) { HtmlGenericControl li = this.FindControl("li" ...

  7. 百度地图API的网页使用

    请看图示(以及参考官方文档): 图片尺寸:1710x822

  8. 如何使用淘宝 NPM 镜像,安装CNPM的方法

    npm 版本需要大于 3.0 前提:安装好npm 环境:Linux 直接在linux下输入命令: npm install -g cnpm --registry=https://registry.npm ...

  9. (转)Unity内建图标列表

    用法 Gizmos.DrawIcon(transform.position, "PointLight Gizmo"); UnityEditor.EditorGUIUtility.F ...

  10. [转]An overview of Openvswitch implementation

    This is NOT a tutorial on how to use openvswitch, this is for developers who want to know the implem ...