atcoder A - Frog 1(DP)

A - Frog 1


Time Limit: 2 sec / Memory Limit: 1024 MB

Score : 100100 points

Problem Statement

There are NN stones, numbered 1,2,,N1,2,…,N. For each ii (1iN1≤i≤N), the height of Stone ii is hihi.

There is a frog who is initially on Stone 11. He will repeat the following action some number of times to reach Stone NN:

  • If the frog is currently on Stone ii, jump to Stone i+1i+1 or Stone i+2i+2. Here, a cost of |hihj||hi−hj| is incurred, where jj is the stone to land on.

Find the minimum possible total cost incurred before the frog reaches Stone NN.

Constraints

  • All values in input are integers.
  • 2N1052≤N≤105
  • 1hi1041≤hi≤104

Input

Input is given from Standard Input in the following format:

NN
h1h1 h2h2  hNhN

Output

Print the minimum possible total cost incurred.


Sample Input 1 Copy

Copy
4
10 30 40 20

Sample Output 1 Copy

Copy
30

If we follow the path 11 → 22 → 44, the total cost incurred would be |1030|+|3020|=30|10−30|+|30−20|=30.


Sample Input 2 Copy

Copy
2
10 10

Sample Output 2 Copy

Copy
0

If we follow the path 11 → 22, the total cost incurred would be |1010|=0|10−10|=0.


Sample Input 3 Copy

Copy
6
30 10 60 10 60 50

Sample Output 3 Copy

Copy
40

If we follow the path 11 → 33 → 55 → 66, the total cost incurred would be |3060|+|6060|+|6050|=40|30−60|+|60−60|+|60−50|=40.

 

题目链接:https://atcoder.jp/contests/dp/tasks/dp_a

题意:给你一堆石头,每一个石头有一个高度,有一只青蛙站在第一个石头上,青蛙每一次可以跳1-2个石头,并且产生起跳高度和落地高度的差的消耗。

问你青蛙跳到第N个石头,最小需要消耗多少能量?

 

思路:

简单的线性DP, 定义dp[i]的状态意义为青蛙跳到第i个石头的时候消耗的最小能量,

转移方程即为:dp[i]=min(dp[i-2]+abs(a[i]-a[i-2]),dp[i-1]+abs(a[i]-a[i-1]))

初始状态定义: dp[1] = 0 ,  dp[2]=| a[2]-a[1] |

dp[2]一定要预处理,状态转移只能从i=3开始,因为第二个石头只能由第一个石头跳过去。

不这样定义会wa的。(亲测,23333)

我的AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#define rep(i,x,n) for(int i=x;i<n;i++)
#define repd(i,x,n) for(int i=x;i<=n;i++)
#define pii pair<int,int>
#define pll pair<long long ,long long>
#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define MS0(X) memset((X), 0, sizeof((X)))
#define MSC0(X) memset((X), '\0', sizeof((X)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define gg(x) getInt(&x)
using namespace std;
typedef long long ll;
inline void getInt(int* p);
const int maxn=1000010;
const int inf=0x3f3f3f3f;
/*** TEMPLATE CODE * * STARTS HERE ***/
ll n;
ll dp[maxn];
ll a[maxn];
int main()
{gbtb;cin>>n;repd(i,1,n){cin>>a[i];}dp[1]=0;dp[0]=0;dp[2]=abs(a[2]-a[1]);repd(i,3,n){dp[i]=min(dp[i-2]+abs(a[i]-a[i-2]),dp[i-1]+abs(a[i]-a[i-1]));}cout<<dp[n];return 0;
}inline void getInt(int* p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}}else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}}
}

 

转载于:https://www.cnblogs.com/qieqiemin/p/10247378.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

【转】关于WaterFall瀑布流式布局的性能优化

市面上已存在的瀑布流式布局的网站&#xff1a;拼范网&#xff1a;http://www.pinfun.com/迷尚网&#xff1a;http://www.mishang.com/凡客达人&#xff1a;http://star.vancl.com/美丽说&#xff1a;http://www.meilishuo.com/蘑菇街&#xff1a;http://www.mogujie.com/welco…

微软OTech第二次会议(广州站)

很荣运又有机会参与微软的活动&#xff0c;也很高兴能加入到旨在促进Office技术交流的俱乐部(OTEC)&#xff0c;在这里让我对Office有了更深入的理解&#xff0c;目前的Office远非以前Office所能比拟。也远不止简单的Word、Excel电子文档表格办公自动化这些功能。目前中国大陆O…

Work Tips

目录IAR环境下&#xff0c;使用Live Watch实时监控变量值IAR替换mcu库Linux中删除swp文件使用J-Link通过SWD接口直接下载.hex文件和.bin文件到MCU(下载J-Flash软件)linux设置时间命令Jlink无法识别排查方法IAR环境下&#xff0c;使用Live Watch实时监控变量值 循环放在数组里&…

ECMA6--字符串/数组

字符串 新增两个字符串方法 startsWith&#xff08;&#xff09; 字符串首开通检测 endsWith&#xff08;&#xff09; 后缀名检测 includes &#xff08;&#xff09; 字符串中是否包含 字符串模板 数组 let title 头部 let content 内容 let a <div>\<p>titl…

[总结]DataGrid 固定表头实现(纵向和横向滚动条滚动,而Header不动)

1.用Css来定制DataGrid表头HeaderStyle的cssclass属性.fixTitle{ /*background: navy; color: white;*/ position: relative; top: expression(this.offsetParent.scrollTop);} 1<DIV style"Z-INDEX: 102; LEFT: 264px; OVERFLOW: auto; WIDTH: 184px;TOP: 128px; HEIG…

Fedora 20 安装后的一些事情

1、关闭selinux 可以在软件中,找到selinux管理工具:system-config-selinux.py 2、安装源 可以通过# ls -l /etc/yum.repos.d 查看现有的安装源,另外还可以给一些其他软件源&#xff1a; 添加remi,Remi repository 是包含最新版本 PHP 和 MySQL 包的 Linux 源&#xff0c;由 Rem…

STM32使用SPI通信驱动2.4G无线射频模块发送数据

目录SPI介绍SPI接口原理SPI工作原理SPI特征引脚配置结构体库函数SPI配置过程SPI.hSPI.cNRF24L01无线射频模块NRF24L01厂家驱动代码移植NRF24L01.hNRF24L01.cmain.c串口打印调试SPI介绍 SPI接口原理 SPI工作原理 SPI特征 引脚配置 结构体 库函数 SPI配置过程 SPI.h #ifndef __…

1.Rabbitmq学习记录《本质介绍,协议AMQP分析》

1.RabbitMQ是一个由erlang开发的AMQP&#xff08;Advanced Message Queue &#xff09;的开源实现。 RabbitMQ的优势-: 除了Qpid&#xff0c;RabbitMQ是唯一一个实现了AMQP标准的消息服务器&#xff1b; 可靠性&#xff0c;RabbitMQ的持久化支持&#xff0c;保证了消息的稳定性…

“Unamed VM”无法初始化 0x80070539

当我们重新安装Windows Server 2012 R2以后&#xff0c;之前Hyper-V的虚拟机没有进行导出&#xff0c;那么我们重新导入虚拟机成功以后&#xff0c;启动它遇到了如下错误&#xff1a; 那么怎么办呢&#xff1f;用下面的poweshell命令就可以解决 Grant-VmConnectAccess -usernam…

要回家了,想到以后..

过几天就要回家了,剩下的工作还有一点没有完成.不过已经是无关大碍了.突然有种很烦的感觉.想想这个暑假的时间里面自己也算是经历不少了,可是回忆一下自己到底收获了什么,脑子里面却是一片空白,什么都想不到.本来是要动笔写篇"我的深圳之行"之类的东西的,可是却没有一…

JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

json | json-c使用入门 这篇讲的也不错&#xff0c;抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p3&spm_id_frompageDriver 目录轻量级C语言JSON解析库1.JSON与cJSONJSON —— 轻量级的数据格式JSON语法规则cJSON2.cJSON数据结构和设计思想3.…

cytoscape操作经验

1.cytoscape批量修改节点属性&#xff1f;首先要创建一个节点属性文档&#xff08;.txt),比如说drug1 1drug2 1complex1 0complex2 0第一列是名字&#xff0c;第二列是属性&#xff0c;用空格分开&#xff1b;然后导入节点属性&#xff0c;在Vizmapper中下拉的visual mapping b…

[ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵

https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法&#xff0c;听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵&#xff0c;开始想的是dp[2000][2000][2]维护这个位置向上向左扩充的矩阵最大长度之后n扫一遍&#xff0c;但是写起来发现并不…

TEA、XTEA、XXTEA加密解密算法

参考&#xff1a;TEA、XTEA、XXTEA加密解密算法 地址&#xff1a;https://blog.csdn.net/gsls200808/article/details/48243019 其他相关博文链接&#xff1a;tea系列加密算法学习笔记、TEA和XxTEA跨平台加密算法 XXTEA可以直接加密解密字符串吗&#xff1f; 如果是字符串加密&…

用户自定义的数据库备份(选自csdn\blog)

用户自定义的数据库备份 备份类型 备份方法 示例 数据文件 操作系统命令或工具 C:\COPY datafile1.ora datafile.bak 归档重做日志文件 操作系统命令或工具 C:\COPY log_01_23.arc log_01_23.bak 控制文件 SQL命令 SQL>ALTER DATABASE BACKUP CONTROLFILE TO confile.bak; …

WIFI 配网方式(AP模式、Smartconfig等模式)

参考&#xff1a;智能设备WIFI配网方式汇总 地址&#xff1a;https://blog.csdn.net/beauytlife_1985/article/details/87539350?spm1001.2014.3001.5502 参考&#xff1a;Wifi设备配网问题 地址&#xff1a;https://blog.csdn.net/boazheng/article/details/90906184 目录概述…

动态显示产品信息

为什么80%的码农都做不了架构师&#xff1f;>>> 今天做了个产品介绍的功能,想到只是简单的显示信息实在是无聊,那就让它动态的一个一个显示出来好了. 效果展示:http://runjs.cn/detail/topt9b26 主要的代码如下 html: info里面保存着产品的信息. <div id"c…

ALGO-162——Airport Configuration

问题描述&#xff1a;ACM机场是一个本地机场&#xff0c;对于大多数人来说&#xff0c;机场不是他们的终点或起点&#xff0c;而是中转站。机场有一个规划图。到达的大门在机场的北边&#xff08;相当于空格&#xff09;。出发的大门在机场的南边&#xff08;也相当于空格&…

CRC校验及C语言实现

摘自&#xff1a;CRC校验原理及其C语言实现 地址&#xff1a;https://blog.csdn.net/whik1194/article/details/108837493?spm1001.2014.3001.5502 什么是校验算法 最近的工作中&#xff0c;要实现对通信数据的CRC计算&#xff0c;所以花了两天的时间好好研究了一下&#xff…