codeforces 1429E(dp)
时间:2022-07-26
本文章向大家介绍codeforces 1429E(dp),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意描述
思路
很容易可以看出是一道dp题,题目中有两个状态:层数和方式,所以我们使用f[i][0]表示上第i层前走的是楼梯,使用f[i][1]表示上第i层前走的是电梯,得到状态转移方程:
f[i][0]=min(f[i-1][0]+a[i-1],f[i-1][1]+a[i-1])
f[i][1]=min(f[i-1][1]+b[i-1],f[i-1][0]+b[i-1]+c)
最后取min(f[i][0],f[i][1])即可。
AC代码
#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<long,long> PLL;
typedef pair<char,char> PCC;
typedef long long ll;
const int N=3*1e5+10;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
ll a[N],b[N],f[N][2];
void solve(){
mst(f,INF);
int n,c;cin>>n>>c;
rep(i,1,n) cin>>a[i];
rep(i,1,n) cin>>b[i];
f[1][0]=0;
f[1][1]=c;
rep(i,2,n+1){
f[i][0]=min(f[i-1][0]+a[i-1],f[i-1][1]+a[i-1]);
f[i][1]=min(f[i-1][0]+b[i-1]+c,f[i-1][1]+b[i-1]);
}
rep(i,1,n+1) cout<<min(f[i][1],f[i][0])<<' ';
}
int main(){
//IOS;
//int t;cin>>t;
//while(t--)
solve();
return 0;
}
- [数据库基础]——编码标准之结构
- 2017前端开发手册三-前端职位描述
- [.NET自我学习]Delegate 泛型
- [数据库基础]——图解JOIN
- ubuntu搭建内网穿透服务Ngrok
- SQL Server 性能优化之——T-SQL 临时表、表变量、UNION
- node.js 学习笔记
- SQL Server 性能优化之——T-SQL TVF和标量函数
- C# 6.0 功能预览 (一)
- [译]Asp.net MVC 之 Contorllers(二)
- [译]Asp.net MVC 之 Contorllers(一)
- Oracle 学习笔记
- [数据库基础]——索引详解
- [数据库基础]——快速浏览日期时间转换
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux中使用grep命令详解
- linux下使用cmake编译安装mysql的详细教程
- Linux CentOS 7.0中java安装与配置环境变量的步骤详解
- Linux下进程数量的限制pid_max的配置方法
- linux 进程数最大值修改方法
- Linux通过设备号找到设备的方法
- linux环境下安装 openOffice 并启动服务 的方法
- Linux下如何查杀stopped进程详解
- Linux文件服务器实战详解(匿名用户)
- ubuntu16.0.4 设置固定ip地址的方法
- Linux文件服务器实战详解(虚拟用户)
- Linux CentOS下安装Tomcat9及web项目的部署
- Linux文件服务器实战详解(系统用户)
- 关于bash函数你可能不知道的一些事情(译)
- Linux Centos7系统端口占用问题的解决方法