51nod1270 数组的最大代价(简单dp)
---恢复内容开始---

第1行:1个数N,表示数组的长度(1 <= N <= 50000)。
第2 - N+1行:每行1个数,对应数组元素Bi(1 <= Bi <= 10000)。
输出最大代价S。
5
10
1
10
1
10
36
看到这道题首先想到的就要|Ai-A(i-1)|最大,这A数组只可能是1或者Bi
则分别考虑1或者是Bi时候的情况;
就可以得到递推公式:
dp[i][0]=max(dp[i-1][0],dp[i-1][1]+abs(1-b[i-1])); //表示A[i]为1的情况
dp[i][1]=max(dp[i-1][0]+abs(b[i]-1]),dp[i-1][1]+abs(b[i]-b[i-1]));//表示A[i]为Bi的情况
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
int b[50005];
int dp[50005][2];
int main(){
int n;
scanf("%d",&n);
int i;
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=1;i<n;i++){
dp[i][0]=max(dp[i-1][0],dp[i-1][1]+abs(1-b[i-1]));
dp[i][1]=max(dp[i-1][0]+abs(b[i]-1),dp[i-1][1]+abs(b[i]-b[i-1]));
}
printf("%d\n",max(dp[n-1][0],dp[n-1][1]));
}
---恢复内容结束---
51nod1270 数组的最大代价(简单dp)的更多相关文章
- [51nod1270] 数组的最大代价(简单dp)
解题关键:先由贪心的思想得出任何一个位置只能取1或者a[i],然后dp即可. #include<bits/stdc++.h> using namespace std; typedef lo ...
- POJ 3666 Making the Grade(数列变成非降序/非升序数组的最小代价,dp)
传送门: http://poj.org/problem?id=3666 Making the Grade Time Limit: 1000MS Memory Limit: 65536K Total ...
- 『数组的最大代价 贪心优化DP』
数组的最大代价(51nod 1270) Description 数组A包含N个元素A1, A2......AN.数组B包含N个元素B1, B2......BN.并且数组A中的每一个元素Ai,都满足1 ...
- 『简单dp测试题解』
这一次组织了一场\(dp\)的专项考试,出了好几道经典的简单\(dp\)套路题,特开一篇博客写一下题解. Tower(双向dp) Description 信大家都写过数字三角形问题,题目很简单求最大化 ...
- 51nod 1270 数组的最大代价
1270 数组的最大代价题目来源: HackerRank基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包含N ...
- 计蒜客-跳跃游戏二 (简单dp)
题目链接:https://nanti.jisuanke.com/t/20 跳跃游戏二 给定一个非负整数数组,假定你的初始 ...
- Kattis - bank 【简单DP】
Kattis - bank [简单DP] Description Oliver is a manager of a bank near KTH and wants to close soon. The ...
- 简单dp总结
### 简单dp总结 本文是阅读<挑战程序设计第二版>其中关于dp章节所作总结.将简要描述dp的部分知识. 一.dp是什么? dp在计算机专业学科中全称是动态规划(dynamic prog ...
- hdu1501 Zipper[简单DP]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu1501 题干 代码和解释 最优子结构分析:设这三个字符串分别为a.b.c,如果a.b可以组成c,那么c的最后一个字母必定来自a或者b的最后一个 ...
随机推荐
- DM 之 全解析
一.设计模式的分类 二十三大设计模式,分为三大类: 1. 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 2. 结构型模式,共七种:适配器模式.装饰器模式.代理模式. ...
- Free download SKP900 update tool & activation tool
One of the SKP900 key programmer user failed to get the SKP900 upgraded and add free tokens online u ...
- ArcEngine实现捕捉节点
来自:http://blog.sina.com.cn/s/blog_4d0b75870100o960.html //获取最近的结点,然后在 OnMouseMove中显示 //pnt:鼠标移动点 // ...
- mongodb 安装为windows服务
mongodb 安装为windows服务: 以管理员身份运行下面的命令: mongod --install --rest --dbpath e:\data\mongo --logpath e:\dat ...
- 《Cortex-M0权威指南》之体系结构---系统模型
转载请注明来源:cuixiaolei的技术博客 Cortex-M0体系结构包括:系统模型.存储器映射.异常中断.这篇文章主要讲解Cortex-M0的系统模型. 操作模式和状态 如上图所示,Cortex ...
- CSS3实战手册(第3版)(影印版)
<CSS3实战手册(第3版)(影印版)> 基本信息 原书名:CSS3: The Missing Manual, 3E 作者: David Sawyer McFarland 出版社:东南大学 ...
- date & dirname
date 年:+%Y 月:+%m 日:+%d 时:+%H 或者 +%k 分:+%M 秒:+%S 周:+%w dirname 目录 获取目录的上级目录
- 让TabelView视图中自定义的Toolbar固定(不随cell的移动而移动)
//在viewDidLoad方法中创建Toolbartoolbar = [[UIView alloc] initWithFrame:CGRectMake(, , , )]; toolbar.backg ...
- JDK 自带工具试用(一)
简述: 运维监控会用到JDK的小工具 说明: 1. jps 用来查看当前运行的Java进程 我在eclipse中起了一个web 应用 或者用jps -l 可以查看的更清楚一点 jps -v 看到103 ...
- Unity之定时调用
1.Invoke(string methodName,float time) 在一定时间调用methodName函数 using UnityEngine; using System.Collectio ...