uva1025 dp
这题说的是给了n个车站 从1号 车站到 n号车站,有m1辆车从1 开往n 有m2 辆车从n 开往1 一个人从1 车站 到达n 车站在T 时刻 要求再 车站呆的时间尽量少
dp[i][j] 表示 在 第i 个车站 j 时刻的 状态 他会从 dp[i][j-1]+1 和j 时刻有到i的火车经过的点来, 这样我们通过计算在j时候有什么火车到达i就可以了
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
using namespace std;
int dp[][];
int dd[];
int t[][];
int D[][];
void inti(int n, int t){
for(int i=; i<n; ++i)
for(int j=; j<=t; ++j)
dp[i][j]=t+;
}
int main()
{
int N,T,cas=;
while(scanf("%d",&N)==&&N){
scanf("%d",&T); for(int i=; i<N; ++i)
scanf("%d",&dd[i]);
t[][]=;
for(int i=; i<N; ++i)
t[][i]=t[][i-]+dd[i];
t[][N-]=;
for(int i=N-; i>=; --i)
t[][i]=t[][i+]+dd[i+];
int m1;
scanf("%d",&m1);
for(int i=; i<m1; ++i){
scanf("%d",&D[][i]);
}
int m2;
scanf("%d",&m2);
for(int i=; i<m2; ++i)
scanf("%d",&D[][i]);
inti(N,T);
dp[][]=;
for(int i=; i<=T; ++i){
if(i==) {
int ddddddd=; }
for(int j=; j<N; ++j){
dp[j][i]=min(dp[j][i],dp[j][i-]+);
for(int e=; e<m1; e++)
if( D[][e]+t[][j]==i&&j!=){
for(int k=; k<j; ++k)
dp[j][i]=min(dp[j][i],dp[ k ][ D[][e]+t[][k] ]);
}
for(int e=; e<m2; e++){
if(D[][e]+t[][j]==i&&j!=(N-) ){
for(int k=N-; k>j; --k)
dp[j][i]=min(dp[j][i],dp[ k ][ D[][e] +t[][k] ]);
}
}
}
}
printf("Case Number %d: ",cas++);
if(dp[N-][T]>T){
puts("impossible");
}else{
printf("%d\n",dp[N-][T]);
}
} return ;
}
uva1025 dp的更多相关文章
- UVA1025 A Spy in the Metro —— DP
题目链接: https://vjudge.net/problem/UVA-1025 题解: 详情请看紫书P267. 与其说是DP题,我觉得更像是模拟题,特别是用记忆化搜索写. 递推: #include ...
- UVa1025 (DAG上的dp)
这是紫书上的第一个dp哈. 1.状态定义:dp[i][j]---->到时刻i的时候(出发的时候时刻为0,约定时间为时刻time),从j号车站开往N号车站,在车站等待的最少的时间. 2.这个人当前 ...
- 9-1 A Spy in the Metro uva1025 城市里的间谍 (DP)
非常有价值的dp题目 也是我做的第一题dp 真的效率好高 题意:某城市的地铁是线性的 有n个车站 从左到右编号为1-n 有m1辆列车从第一站开始往右开 还有m2辆列车从第n站开始往左开 在 ...
- UVA - 1025 A Spy in the Metro[DP DAG]
UVA - 1025 A Spy in the Metro Secret agent Maria was sent to Algorithms City to carry out an especia ...
- dp专题练习
顺便开另外一篇放一些学过的各种dp dp总结:https://www.cnblogs.com/henry-1202/p/9194066.html 开坑先放15道题,后面慢慢补 目标50道题啦~~,目前 ...
- DP小合集
1.Uva1625颜色的长度 dp[i][j]表示前一个串选到第i个 后一个串选到第j个 的最小价值 记一下还有多少个没有结束即dp2 记一下每个数开始和结束的位置 #include<cstdi ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
随机推荐
- SPI接口功能描述
- 如何禁止审查元素扒代码(F12)
查看网页源码无非是三种,右键,ctrl+shift+i,f12我们只要禁止即可,代码如下 window.onload=function(){ document.onkeydown=function() ...
- ExtJS6的中sencha cmd中自动创建案例项目代码分析
在之前的博文中,我们按照sencha cmd的指点,在自己win7虚拟机上创建了一个案例项目,相当于创建了一个固定格式的文档目录结构,然后里面自动创建了一系列js代码.这是使用sencha cmd自动 ...
- \r\n和\n的区别
写Java代码的时候习惯用\r\n换行,这样可移植性比较好但是,在UVa - 160中就出现了错误,来看看是为什么吧. http://bbs.csdn.net/topics/220033879
- <a>标签实现链接和锚点的区别
如果是实现链接,a标签中必须有href属性,并且属性值是合法的url 如果实现锚点,a标签中必须有name属性,当点击该标签时,会跳转到id同该标签的name值相同的元素处.
- 使用openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- call和apply方法
/* * @ call和apply方法 * @ 当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作. * @ (有方法的)对象.call(" ...
- 【BZOJ4144】[AMPPZ2014]Petrol 最短路+离线+最小生成树
[BZOJ4144][AMPPZ2014]Petrol Description 给定一个n个点.m条边的带权无向图,其中有s个点是加油站. 每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油 ...
- jvm原理之内存机制
转自:https://www.cnblogs.com/dreamowneryong/p/6381633.html JVM栈由堆.方法区,栈.本地方法栈.程序计数器等部分组成,结构图如下所示: 还有一张 ...
- python随机验证码函数
#验证码函数def yzm(i): code = [] for i in range(i): ,): code.append(str(random.randint(,))) else: tmp = r ...