51nod 1270 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270
简单的线性dp,最近狂刷水题真的是。。。药丸
差值最大得话要么是峰顶要么是最小的1,不可能处在中间状态,那样显然没有峰值的贡献大,想通这一点之后方程就好写了,
dp[i][0]表示第i个数取最小值的最大代价,dp[i][1]相反。
有 dp[i][0]=max(dp[i-1][0],dp[i-1][1]+a[i-1]-1);
dp[i][1]=max(dp[i-1][0]+a[i]-1,dp[i-1][1]+abs(a[i]-a[i-1]);
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define inf 0x3f3f3f3f
LL mod=1e9+;
LL dp[][];
int a[];
int main()
{
int N,i,j;
cin>>N;
for(i=;i<=N;++i) scanf("%d",a+i);
dp[][]=a[]-;
dp[][]=a[]-;
for(i=;i<=N;++i)
{
dp[i][]=max(dp[i-][],dp[i-][]+a[i-]-);
dp[i][]=max(dp[i-][]+a[i]-,dp[i-][]+abs(a[i]-a[i-]));
}
cout<<max(dp[N][],dp[N][])<<endl;
return ;
}
51nod 1270 dp的更多相关文章
- 51nod 1270 数组的最大代价
1270 数组的最大代价题目来源: HackerRank基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包含N ...
- 51nod 1154 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1154 1154 回文串划分 基准时间限制:1 秒 空间限制:131072 ...
- 51nod 1270 数组的最大代价 思路:简单动态规划
这题是看起来很复杂,但是换个思路就简单了的题目. 首先每个点要么取b[i],要么取1,因为取中间值毫无意义,不能增加最大代价S. 用一个二维数组做动态规划就很简单了. dp[i][0]表示第i个点取1 ...
- bzoj 1270 DP
w[i,j]代表高度j,第i颗树的时候的最大值 那么w[i,j]:=max(w[i,j+1],w[k,j+heigh])+sum[i,j]: 但是这样枚举是n^3的,我们发现转移的第二个选择w[k,j ...
- 『数组的最大代价 贪心优化DP』
数组的最大代价(51nod 1270) Description 数组A包含N个元素A1, A2......AN.数组B包含N个元素B1, B2......BN.并且数组A中的每一个元素Ai,都满足1 ...
- 基础dp 记录
51nod 1134 最长递增子序列 #include<iostream> #include<cstdio> #include<cstring> #include& ...
- 1270 数组的最大代价 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270&judgeId=194704 一开始贪心,以为就两种情况, ...
- 51nod 1412 AVL树的种类(dp)
题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> ...
- 51nod 1183 编辑距离(dp)
题目链接:51nod 1183 编辑距离 #include<cstdio> #include<cstring> #include<algorithm> using ...
随机推荐
- 转!!springmvc学习
springmvc学习 https://www.cnblogs.com/baiduligang/p/4247164.html
- 解决ajax无法给js全局变量赋值的问题
解决ajax无法给js全局变量赋值的问题 http://blog.csdn.net/qq_26222859/article/details/51543433 在ajax中是无法给js中的全局变量赋值的 ...
- plotly绘制直方图示例
计算数值出现的次数“ import cufflinks as cf cf.go_offline() import numpy as np import pandas as pd set_slippag ...
- 安卓使用Canvas绘制工作日程表
有一个项目要使用工作表,选择使用canvas来绘制.实现显示工作日程的选择,可点击加入和取消,效果图:http://jwzhangjie.com/workplan.gif 自己定义控件FormView ...
- linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值
引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控.收集进程的CPU.IO.内存使用情况.比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT).物理内存(RES). ...
- loadrunner winsocket sent buffer 乱码
data.ws里手写的xml参数,调试脚本时一直显示乱码,解决方法如下: tools-recording options--sockets--winsock下: EBCID--translation ...
- python网络编程——SocketServer/Twisted/paramiko模块
在之前博客C/S架构的网络编程中,IO多路复用是将多个IO操作复用到1个服务端进程中进行处理,即无论有多少个客户端进行连接请求,服务端始终只有1个进程对客户端进行响应,这样的好处是节省了系统开销(se ...
- 20145222黄亚奇《网络对抗》web安全基础实践
web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语 ...
- Qt开发串口
首先,在工程文件里面, QT += serialport 在头文件里面, #include <QSerialPort> 1.配置打开串口 QSerialPort* myserial = n ...
- 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
解决方案,把文件用Editplus打开,UTF-8+BOM编码的文件转为普通的UTF-8文件