非常有价值的dp题目  也是我做的第一题dp    真的效率好高

题意:某城市的地铁是线性的 有n个车站 从左到右编号为1-n  有m1辆列车从第一站开始往右开 还有m2辆列车从第n站开始往左开  在时刻0  小明从第1站出发  目的是在时刻T 正好会见在第n站的间谍  为了不被抓   小明在车站等待的时间要尽量少   求出最短时间  如果到不了  输出impossible

输入第一行为n  第二行为T  第三行有n-1个数字  表示 从左到右两个车站之间列车行驶的时间   接下来为m1    然后跟着m1个数字 表示车站1发车时刻   然后m2 同理

一开始根本想不到用dp   这题的元素好多 !!

每次有三种决策

1 原地等待1s

2 搭乘往右的车  (当然 前提是有)

3 搭乘往左的车

当面临多决策问题时  且所处环境(时间 地点)多样时   用dp做!!!

影响决策的元素只有两个  1 时间  2 所处车站

所以 dp i j     i表示当前时刻   j 表示所处车站

从结束点  也就是 时刻为T时开始进行dp

注意对dp数组的初始化   都在i=T的情况下   当i==n时   达成目标   dp为0     当i为其他值时  全部为inf(显然已经没机会了)

非常好的dp  !!

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define N 200+5
  4. #define inf 0x3f3f3f3f
  5. int n,t[N],car[N][N][];
  6. int dp[N][N];
  7. int main()
  8. {
  9. int cas=;
  10. int T;
  11. int q;
  12. int x;
  13. while(scanf("%d",&n)==,n)
  14. {
  15.  
  16. memset(car,,sizeof car);
  17. scanf("%d",&T);
  18. for(int i=;i<n-;i++)scanf("%d",&t[i]);
  19.  
  20. scanf("%d",&q);
  21. while(q--)
  22. {
  23. scanf("%d",&x);
  24. car[][x][]=;
  25. for(int i=;i<n;i++)
  26. {
  27. x+=t[i-];
  28. car[i][ x ][]=;
  29. }
  30. }
  31. scanf("%d",&q);
  32. while(q--)
  33. {
  34. scanf("%d",&x);
  35. car[n-][x][]=;
  36. for(int i=n-;i>=;i--)
  37. {
  38. x+=t[i];
  39. car[i][x][]=;
  40. }
  41. }
  42.  
  43. for(int i=;i<n-;i++)dp[T][i]=inf;//其他的完全不用初始化 填表会全部覆盖掉
  44. dp[T][n-]=;
  45. for(int i=T-;i>=;i--)//顺序必须是固定的
  46. for(int j=;j<n;j++)
  47. {
  48. dp[i][j]=dp[i+][j]+;//原地等待一秒钟
  49.  
  50. if( car[j][i][] && i+t[j]<=T && j<n- )
  51. dp[i][j]=min(dp[i][j],dp[ i+t[j] ][j+] );
  52.  
  53. if( car[j][i][] && j!= && i+t[j-]<=T )
  54. dp[i][j]=min(dp[i][j],dp[ i+t[j-] ][j-]);
  55. }
  56.  
  57. printf("Case Number %d: ",++cas);
  58. if(dp[][]>=inf)
  59. printf("impossible\n");
  60. else
  61. printf("%d\n",dp[][]);
  62. }
  63. return ;
  64. }

9-1 A Spy in the Metro uva1025 城市里的间谍 (DP)的更多相关文章

  1. UVa-1025城市里的间谍 A Spy in the Metro

    原题 城市里的间谍 分析 动态规划,dp[i][j]表示你在时刻i,车站j,最少还要等待的时间. 边界条件d[T][n]=0 已经到达,其他d[T][i]=inf不可达. 在一个站点时,有以下三种决策 ...

  2. UVA1025 城市里的间谍

    #include<iostream> #include<cstdio> #include<memory.h> using namespace std; #defin ...

  3. 【动态规划】[UVA1025]A Spy in the Metro 城市里的间谍

    参考:https://blog.csdn.net/NOIAu/article/details/71517440 https://blog.csdn.net/c20180630/article/deta ...

  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. 洛谷2583 地铁间谍 (UVa1025A Spy in the Metro)

    洛谷2583 地铁间谍(UVa1025A Spy in the Metro) 本题地址:http://www.luogu.org/problem/show?pid=2583 题目描述 特工玛利亚被送到 ...

  6. UVA1025-A Spy in the Metro(动态规划)

    Problem UVA1025-A Spy in the Metro Accept: 713  Submit: 6160Time Limit: 3000 mSec Problem Descriptio ...

  7. uva 1025 A Spy in the Metro 解题报告

    A Spy in the Metro Time Limit: 3000MS     64bit IO Format: %lld & %llu Submit Status uDebug Secr ...

  8. uva A Spy in the Metro(洛谷 P2583 地铁间谍)

    A Spy in the Metro Secret agent Maria was sent to Algorithms City to carry out an especially dangero ...

  9. UVA 1025 -- A Spy in the Metro (DP)

     UVA 1025 -- A Spy in the Metro  题意:  一个间谍要从第一个车站到第n个车站去会见另一个,在是期间有n个车站,有来回的车站,让你在时间T内时到达n,并且等车时间最短, ...

随机推荐

  1. Spring Resource 类图

    插播个广告 老丈人家的粉皮儿,农产品,没有乱七八糟的添加剂,欢迎惠顾 

  2. 洛谷P1102 A-B数对

    洛谷P1102 A-B数对 https://www.luogu.org/problem/show?pid=1102 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A ...

  3. ElasticSearch关键概念

    Elasticsearch 添加索引 一个存储关联数据的地方 用来指向一个或者多个分片(shards)的逻辑命名空间(logical namespcase) 应用程序直接与索引通信 一个分片(shar ...

  4. Java SSM框架之MyBatis3(三)Mybatis分页插件PageHelper

    引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select ...

  5. 【BZOJ】2434: [Noi2011]阿狸的打字机 AC自动机+树状数组+DFS序

    [题意]阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的: l 输入小写 ...

  6. iOS6下实现滑动返回

    [转载请注明出处] 之前在看iOS7滑动返回时,发现了一个iOS6 SDK下的第三方实现,今天偶然间发现了作者在其博客上对该实现的一些心得,读来深觉之前的思考太过肤浅,许多实际的问题没有考虑到.帖子链 ...

  7. jq 监听input值的变化

    $(".popWeiXing .name").bind("input propertychange", function() { modValue.diyDat ...

  8. C# 链接webservice报错

    未处理 System.ServiceModel.EndpointNotFoundException  Message="没有终结点对可能接受消息的 http://192.168.0.168/ ...

  9. 记录一下mariadb设置主从同步的过程[虚拟机测试]

    背景:因为工作的关系,需要找寻实时同步数据到另外系统的服务器的数据库上,查询下来,用mariadb进行跨服务器的同步数据动作,用主从同步比较多,也比较保险 也有使用shell脚本的,定时定候的执行my ...

  10. 数据库-mysql管理

    MySQL 管理 启动及关闭 MySQL 服务器 首先,我们需要通过以下命令来检查MySQL服务器是否启动: ps -ef | grep mysqld 如果MySql已经启动,以上命令将输出mysql ...