Educational Codeforces Round 73 (Rated for Div. 2)D(DP,思维)
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
long long a[300007],b[300007];
long long dp[300007][5];
long long ans;
int main(){
ios::sync_with_stdio(false);//多组数据输入cin,cout容易超时
cin.tie(NULL);
cout.tie(NULL);
int q;
cin>>q;
while(q--){
int n;
ans=2e18;
cin>>n;
dp[1][0]=0;//第二维表示第一维增加的高度,0即不增加,花费也是0
dp[1][1]=b[1];//增加1高度花费为b[1]
dp[1][2]=2e18;//第一个点最多只需要增加1高度就可以与a[2]不同,所以花费初始化为最大值
for(int i=2;i<=n;++i){//初始化
dp[i][0]=2e18;
dp[i][1]=2e18;
dp[i][2]=2e18;
}
for(int i=1;i<=n;++i)
cin>>a[i]>>b[i];
for(int i=2;i<=n;++i){
for(int j=0;j<3;++j){
for(int k=0;k<3;++k){
if(k+a[i]!=a[i-1]+j){//如果当前a[i]增加k以后的高度和上一位置a[i-1]增加j以后的高度不同,则满足题意
dp[i][k]=min(dp[i-1][j]+b[i]*k,dp[i][k]);//更新位置i增加高度k所需要的最小花费
}
}
}
}
for(int i=0;i<3;++i){
ans=min(dp[n][i],ans);
}
cout<<ans<<"\n";
}
return 0;
}
最新文章
- OGG for DB2 z/OS 12.2版本发布
- JSON字符串和对象之间的转换
- JS的构造及其事件注意点总结
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- 【分享】IT产业中的三大定理(二) —— 安迪&;比尔定理 (Andy and Bill&#39;s Law)
- 在 Mac OS X 中建立加密的 Zip 压缩 -- 让机密资料加上密码
- __name__属性
- 推荐几个JSON工具
- loadrunner:参数类型及其取值机制
- Ubuntu 11.10 Server下搭建Maven私服
- MySQL常用数值函数
- Qt测算程序运行时间
- 33.MySQL高可用架构
- Java设计模式学习记录-中介者模式
- C - Portals Gym - 102006C (网络流最小割)
- cacti系列(三)之cacti添加对mysql服务器主从的监控
- php协程
- Python中的 // 与 / 的区别
- 安装lr时无法将值Disable Script Debugger 写入注册表
- php可选缓存APC
热门文章
- 在ios微信客户端遇到的坑,input等错位
- php相关问题学习(以备面试)
- Abaqus脚本接口及简单应用
- python manage.py shell
- Move-to-front(MTF) and Run-lenght encoding(RLE) algorithms
- VS2017控制台应用中通过代码连接MySQL数据库
- Git - 常用命令, cheatsheet
- Fluent_Python_Part2数据结构,02-array-seq,序列类型
- Linux :ls 命令
- ubuntu apache 通过端口新建多个站点