51nod 1270 数组的最大代价
来源:互联网 发布:软件版权声明 编辑:程序博客网 时间:2024/05/23 02:06
题目链接:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270
题解:
题目本身不难,但是题目的大意自己读了很久才理解。
题目就是让你自己创建大小为n的数组,其中里面元素的值的范围为[1,b[i]]注意这里是闭区间,问你,求你自己构建的a数组的最大代价是多少。
思路其实很简单,首先我们可以直接用贪心的思想去考虑,a[i]的元素只肯能是1或则是b[i]。下面的话,就是一个比较简单的dp,直接看代码。
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))#define inf 0x3f3f3f3fconst int maxn = 5e4+10;int num[maxn];int dp[maxn][2];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&num[i]); met(dp,0); for(int i=2;i<=n;i++) { dp[i][0]=max(dp[i-1][1]+abs(num[i-1]-1),dp[i-1][0]); // dp[i][0]表示这个数字是1,所以,它的最大值就是前者减去1,或则是它本身。 dp[i][1]=max(dp[i-1][0]+abs(num[i]-1),dp[i-1][1]+abs(num[i]-num[i-1])); // dp[i][1]表示这个数字是有他的本身所构成的。 } printf("%d\n",max(dp[n][0],dp[n][1])); }}
0 0
- 51nod 1270:数组的最大代价
- 51NOD 1270 数组的最大代价
- 51nod-【1270 数组的最大代价】
- 51nod 1270 数组的最大代价
- 51Nod 1270 数组的最大代价
- 51nod 1270 数组的最大代价
- 51nod- 1270 数组的最大代价
- 1270 数组的最大代价 51NOD
- 51Nod 1270 数组的最大代价
- 51nod 1270 数组的最大代价
- 51nod 1270 数组的最大代价
- 【51nod】1270 数组的最大代价
- 51 nod 数组的最大代价
- 51 nod 1270 数组最大代价
- 51nod 1270 数组的最大代价(DP)
- 51nod 1270 数组的最大代价 (DP_好题)
- 51nod 1270 数组的最大代价 dp
- 51Nod-1270-数组的最大代价
- js检测文件类型
- (转)华兴资本包凡:我们这么屌,是有原因的
- 装最多水的容器
- 170411 VJ题解(2)(ZOJ
- 谷歌Inception网络中的Inception-V3到Inception-V4具体作了哪些优化?
- 51nod 1270 数组的最大代价
- 关于去除表单选中时的蓝色边框和设置内置提示字体
- 10-进程间通信-有名管道FIFO(功能:传输数据)
- HDU 2082 找单词 母函数
- JSON和GSON学习
- Bean named 'transactionAdvice' must be of type [org.aopalliance.aop.Advice], but was actually of typ
- bmon:Linux 下一个强大的网络带宽监视和调试工具
- 前端工程师之HTML基础知识1
- Java中的Listener监听器