这题说的是给了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的更多相关文章

  1. UVA1025 A Spy in the Metro —— DP

    题目链接: https://vjudge.net/problem/UVA-1025 题解: 详情请看紫书P267. 与其说是DP题,我觉得更像是模拟题,特别是用记忆化搜索写. 递推: #include ...

  2. UVa1025 (DAG上的dp)

    这是紫书上的第一个dp哈. 1.状态定义:dp[i][j]---->到时刻i的时候(出发的时候时刻为0,约定时间为时刻time),从j号车站开往N号车站,在车站等待的最少的时间. 2.这个人当前 ...

  3. 9-1 A Spy in the Metro uva1025 城市里的间谍 (DP)

    非常有价值的dp题目  也是我做的第一题dp    真的效率好高 题意:某城市的地铁是线性的 有n个车站 从左到右编号为1-n  有m1辆列车从第一站开始往右开 还有m2辆列车从第n站开始往左开  在 ...

  4. 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 ...

  5. dp专题练习

    顺便开另外一篇放一些学过的各种dp dp总结:https://www.cnblogs.com/henry-1202/p/9194066.html 开坑先放15道题,后面慢慢补 目标50道题啦~~,目前 ...

  6. DP小合集

    1.Uva1625颜色的长度 dp[i][j]表示前一个串选到第i个 后一个串选到第j个 的最小价值 记一下还有多少个没有结束即dp2 记一下每个数开始和结束的位置 #include<cstdi ...

  7. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  8. 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 ...

  9. AEAI DP V3.7.0 发布,开源综合应用开发平台

    1  升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...

随机推荐

  1. js遍历商品编码

    function bathAuditGoods(state) { var selections = $("#deliveryGrid").datagrid('getSelectio ...

  2. linux系统socket通信编程实践

    简单介绍并实现了基于UDP(TCP)的windows(UNIX下流程基本一致)下的服务端和客户端的程序,本文继续探讨关于UDP编程的一些细节. 下图是一个简单的UDP客户/服务器模型: 我在这里也实现 ...

  3. iOS - UIImageView - how to handle UIImage image orientation

    本文转载至 http://stackoverflow.com/questions/8915630/ios-uiimageview-how-to-handle-uiimage-image-orienta ...

  4. (转)关于android设备管理器的一些分析

    转自http://bbs.pediy.com/showthread.php?t=183692 想必很多人都知道轰动一时android木马OBAD,该木马利用android设备管理器的漏洞,当用户激活设 ...

  5. java基础---->java多线程之Join(二)

    如果主线程想等待子线程执行完成之后再结束,就可以使用join方法了.它的使用是等待线程对象销毁.今天我们就通过实例来学习一下多线程中join方法的使用.草在结它的种子,风在摇它的叶子.我们站着,不说话 ...

  6. JS-随机div颜色

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. hdu1024 Max Sum Plus Plus[降维优化好题(貌似以后可以不用单调队列了)]

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  8. C++ XML 序列化器

    http://www.cppblog.com/xlshcn/archive/2007/11/21/cppxmlserializer.html

  9. linux查看日志文件内容命令tail、cat、tac、head、echo、vi

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...

  10. python基础之迭代器协议和生成器

    迭代器和生成器补充:http://www.cnblogs.com/luchuangao/p/6847081.html 一 递归和迭代 略 二 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个ne ...