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;
}
Educational Codeforces Round 73 (Rated for Div. 2)D(DP,思维)的更多相关文章
- Educational Codeforces Round 73 (Rated for Div. 2)E(思维,博弈)
//这道题博弈的核心就是不能让后手有一段只能放b而长度不够放a的段,并且先手要放最后一次#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h> ...
- Educational Codeforces Round 73 (Rated for Div. 2)
传送门 A. 2048 Game 乱搞即可. Code #include <bits/stdc++.h> #define MP make_pair #define fi first #de ...
- Educational Codeforces Round 73 (Rated for Div. 2) D. Make The Fence Great Again(DP)
链接: https://codeforces.com/contest/1221/problem/D 题意: You have a fence consisting of n vertical boar ...
- Educational Codeforces Round 73 (Rated for Div. 2) B. Knights(构造)
链接: https://codeforces.com/contest/1221/problem/B 题意: You are given a chess board with n rows and n ...
- Educational Codeforces Round 73 (Rated for Div. 2) C. Perfect Team
链接: https://codeforces.com/contest/1221/problem/C 题意: You may have already known that a standard ICP ...
- Educational Codeforces Round 73 (Rated for Div. 2) A. 2048 Game
链接: https://codeforces.com/contest/1221/problem/A 题意: You are playing a variation of game 2048. Init ...
- Educational Codeforces Round 73 (Rated for Div. 2)F(线段树,扫描线)
这道题里线段树用来区间更新(每次给更大的区间加上当前区间的权重),用log的复杂度加快了更新速度,也用了区间查询(查询当前区间向右直至最右中以当前区间端点向右一段区间的和中最大的那一段的和),也用lo ...
- Educational Codeforces Round 58 (Rated for Div. 2) F dp + 优化(新坑) + 离线处理
https://codeforces.com/contest/1101/problem/F 题意 有n个城市,m辆卡车,每辆卡车有起点\(s_i\),终点\(f_i\),每公里油耗\(c_i\),可加 ...
- Educational Codeforces Round 63 (Rated for Div. 2) D dp(最大连续子序列)
https://codeforces.com/contest/1155/problem/D 题意 一个n个数的数组\(a[i]\),可以选择连续的一段乘x,求最大连续子序列的值 题解 错误思路:贪心, ...
随机推荐
- Plastic Sprayers Manufacturer -Plastic Spray Bottle Product Features, Nozzle Properties
Nowadays, plastic spray bottles are widely used in the plastic packaging industry. What are the char ...
- Git创建合并和删除分支
创建并切换分支 git checkout命令加上-b参数表示创建并切换分支,以下为创建并切换到dev分支: 相当于先通过 $ git branch dev 命令创建dev分支,然后 $ git che ...
- PS——牛奶字
一.新建800*600像素的背景,设置前景色到透明渐变(黑到白),线性渐变,从上到下画一条直线 二.用矩形选框工具在背景上方1/2位置画一个矩形,Ctrl+Delete填充颜色 三.输入文字,设置图层 ...
- 洛谷P1131 时态同步
题意: 给一个n点的树,每条边都有边权,问从根出发需要增加多少长度,使得最终的儿子到根的距离是一样的 思路: 上来一个思路wa了3次,看完题解之后,又一次豁然开朗…… orz #include< ...
- 洛谷 P1981 表达式求值(模拟)
嗯... 题目链接:https://www.luogu.org/problem/P1981 这道题其实是数组模拟栈.首先处理乘法:注意从后往前处理,处理后归零.然后把数都加起来即可. AC代码: #i ...
- 传奇定时器OnTimer功能详解(泡点、时间触发、任务活动)
传奇定时器OnTimer功能详解(泡点.时间触发.任务活动) 定时器功能,是传奇服务端中非常常见的一种功能,常见如:泡点脚本.赌博脚本,任务活动指定时间刷怪,时间触发一些都需要用到OnTimer功能, ...
- CDH搭建大数据集群(5.10.0)
纠结了好久,还是花钱了3个4核8G的阿里云主机,且行且珍惜,想必手动搭建过Hadoop集群的完全分布式.HBase的完全分布式的你(当然包括我,哈哈),一定会抱怨如此多的配置,而此时CDH正是解决我们 ...
- 使用axios对安卓或者ios低版本兼容性处理
原因:不支持ES6,无法使用promise 解决办法: 1.安装 es6-promise cnpm install es6-promise --save-dev 2.引入 es6-promise im ...
- rf 环境
googlechrome webdriver驱动下载 addrhttps://sites.google.com/a/chromium.org/chromedriver/downloads谷歌浏览器ap ...
- Windows server 2012 R2 服务器用户自动锁定
开启共享文件夹后,发现经常会自动锁定导致,共享用户无法正常访问共享文件夹(原因不明) 解决办法,打开本地安全策略 把账户锁定阈值改为0