Cf#595 (Div. 3)E-DP题
E. By Elevator or Stairs?
状态转移方程:
d[i][0]=min(d[i−1][0],d[i−1][1])+a[i];d[i][0] = min(d[i - 1][0], d[i - 1][1]) + a[i];d[i][0]=min(d[i−1][0],d[i−1][1])+a[i];
d[i][1]=min(d[i−1][1],d[i−1][0]+c)+b[i];d[i][1] = min(d[i - 1][1], d[i - 1][0] + c) + b[i];d[i][1]=min(d[i−1][1],d[i−1][0]+c)+b[i];
d[i][0]表示在i−1到i时步行,到1−i的最少时间d[i][0] 表示在i-1到i时步行,到1-i的最少时间d[i][0]表示在i−1到i时步行,到1−i的最少时间
d[i][0]表示在i−1到i时坐电梯,到1−i的最少时间d[i][0] 表示在i-1到i时坐电梯,到1-i的最少时间d[i][0]表示在i−1到i时坐电梯,到1−i的最少时间
初始状态d[0][0]=0;d[0][1]=c;d[0][0] = 0 ; d[0][1] = c;d[0][0]=0;d[0][1]=c;
不坐电梯很好理解
坐电梯,最优值在上一次之前坐不坐电梯中得到,dp将转换成与前一状态有关。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
const int maxn=2e5+10;
int a[maxn],b[maxn];
int d[maxn][2];
int main(){int n,c;scanf("%d%d",&n,&c);for(int i=1;i<=n-1;i++){scanf("%d",&a[i]);}for(int i=1;i<=n-1;i++){scanf("%d",&b[i]);}d[0][0] = 0;d[0][1] = c;for (int i = 1; i < n; i++) {d[i][0] = min(d[i - 1][0], d[i - 1][1]) + a[i];d[i][1] = min(d[i - 1][1], d[i - 1][0] + c) + b[i];}for(int i=0;i<n;i++) cout<<min(d[i][0],d[i][1])<<" ";cout<<endl;return 0;
}
Cf#595 (Div. 3)E-DP题相关推荐
- CF#764(div.3A~D)dp进阶
CF#764(div.3A~D)&&dp进阶 CF#764(div.3) Problem - A - Codeforces 题意 一个数列,每次操作可以使这个数列中的任何数加1,问最少 ...
- Codeforces Round #595 (Div. 3) F. Maximum Weight Subset 树形dp
传送门 文章目录 题意: 思路: 题意: n≤200n\le200n≤200 思路: 明显的树形dpdpdp,所以考虑一下dpdpdp状态. 这个题状态挺神的..可能是因为我太菜了,看了半天才看懂. ...
- CF #683 div.2
CF #683 div.2 目前 ABCD A. Add Candies B. Numbers Box C. Knapsack D. Catching Cheaters 结尾 A. Add Candi ...
- CF#320 Div.2 总结
比赛网址:cf#320 Div.2 晚上11点开始的比赛,持续2个半小时.结束时有两道题题过了预测数据,分时是A题和C题. 比赛开始的时候,理所当然地从A题开始看起.A题比较容易,稍微分析一下就可以看 ...
- CF #366(div.2) C 模拟,思维
CF #366(div.2) C. Thor 题意:一个手机n个联系人,有q个操作.每次给出ty和ai,如ty==1,表示收到ai的一条信息:如ty==2,表示将ai发的信息都看掉:如ty==3, ...
- CF #764 Div.3(B ~D)
CF #764 Div.3 B题 Make AP 给定a b c 使其中一个数 乘 任意正整数m 问是否能构成成差数列 我们可以想到等差数列的性质 2b=a+c2b = a + c 2b=a+c 思路 ...
- cf #825 Div.2(A~C2)
Cf #825 Div.2 文章目录 Cf #825 Div.2 [A. Make A Equal to B](https://codeforces.com/contest/1736/problem/ ...
- poj2479与poj2593 , 同一道DP题
Description Give you N integers a1, a2 ... aN (|ai| <=1000, 1 <= i <= N). You should outpu ...
- Codeforces Round #701 (Div. 2)赛后补题报告(A~D)
Codeforces Round #701 (Div. 2)赛后补题报告(A~D) A. Add and Divide 原题信息 http://codeforces.com/contest/1485/ ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
最新文章
- 内存和外存的主要区别_内存与外存的关键区别有哪些?
- python资料免费-MicroPython最全资料免费获取
- BERT在多模态领域中的应用
- 如何在SAP云平台的Cloud Foundry环境下添加新的Service(服务)
- Python抽象类介绍
- php控制台脚本错误输出到php_errors.log
- Liunx静态库和动态库
- CSDN博客停用公告
- Nissi商城序章(一):项目概述及架构
- 【CyberSecurityLearning 66】提权
- linux 云锁 端口,问一下,云锁安装后还可以修改端口吗?
- 关于开源软件开发的若干问题
- 招聘:赴微软工作SharePoint技术专家(V-,北京)
- C语言:求一个四位数的个位、十位、百位、千位分别为多少
- Xposed学习笔记之蚂蚁森林能量自动收取模块
- linux音源管理 二维表,Oracle【二维表管理:约束】
- 怎么样把计算机桌面的图标改小,怎样将电脑桌面图标变小_三招搞定桌面图标太小问题-系统城...
- mysql 斯文克斯_14、mysql数据库基础
- greasemonkey入门
- 陀螺专访 | 臻久网CEO庞剑飞:区块链赋能,数字酒证为白酒行业树立创新榜样...