51nod 1270 dp
2017-08-19 15:45
176 查看
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+7; LL dp[50005][2]; int a[50005]; int main() { int N,i,j; cin>>N; for(i=1;i<=N;++i) scanf("%d",a+i); dp[2][0]=a[1]-1; dp[2][1]=a[2]-1; for(i=3;i<=N;++i) { 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])); } cout<<max(dp [0],dp [1])<<endl; return 0; }
相关文章推荐
- 51nod 1270 数组的最大代价 (DP_好题)
- 【51Nod】1270 - 数组的最大代价(dp)
- 51nod 1270 数组的最大代价(dp好题)
- 51nod 1270 数组的最大代价(DP)
- 【dp】51nod 1270 数组的最大代价
- 51nod 1270 数组的最大代价(DP)
- 51nod 1270 数组的最大代价 dp
- 51nod 1270 数组的最大代价(基础dp)
- 51nod 1270 数组的最大代价【思维+Dp+滚动数组优化】
- 51Nod - 1270 dp
- 51nod 1009 数字1的数量(数位dp)
- 51nod 1296 有限制的排列(DP)
- 51NOD-1405 树的距离之和(树形DP)
- 【51Nod】1183 - 编辑距离(dp & 编辑距离)
- 51nod 1378 夹克老爷的愤怒(树形dp,贪心)
- [DP 乱搞] 51Nod 1321 收集点心
- 51nod 1371 DP
- 51nod 1597 有限背包计数问题[dp][阈值]
- bzoj 1270: [BeijingWc2008]雷涛的小猫 dp
- 51nod 1268 和为K的组合 【dfs or dp】