非常有价值的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  !!

#include<bits/stdc++.h>
using namespace std;
#define N 200+5
#define inf 0x3f3f3f3f
int n,t[N],car[N][N][];
int dp[N][N];
int main()
{
int cas=;
int T;
int q;
int x;
while(scanf("%d",&n)==,n)
{ memset(car,,sizeof car);
scanf("%d",&T);
for(int i=;i<n-;i++)scanf("%d",&t[i]); scanf("%d",&q);
while(q--)
{
scanf("%d",&x);
car[][x][]=;
for(int i=;i<n;i++)
{
x+=t[i-];
car[i][ x ][]=;
}
}
scanf("%d",&q);
while(q--)
{
scanf("%d",&x);
car[n-][x][]=;
for(int i=n-;i>=;i--)
{
x+=t[i];
car[i][x][]=;
}
} for(int i=;i<n-;i++)dp[T][i]=inf;//其他的完全不用初始化 填表会全部覆盖掉
dp[T][n-]=;
for(int i=T-;i>=;i--)//顺序必须是固定的
for(int j=;j<n;j++)
{
dp[i][j]=dp[i+][j]+;//原地等待一秒钟 if( car[j][i][] && i+t[j]<=T && j<n- )
dp[i][j]=min(dp[i][j],dp[ i+t[j] ][j+] ); if( car[j][i][] && j!= && i+t[j-]<=T )
dp[i][j]=min(dp[i][j],dp[ i+t[j-] ][j-]);
} printf("Case Number %d: ",++cas);
if(dp[][]>=inf)
printf("impossible\n");
else
printf("%d\n",dp[][]);
}
return ;
}

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. 如何安装ioncube扩展对PHP代码加密

    禅道专业版本的核心代码都是加密的(前端的html, css, js, 配置,语言项是开源的)的,使用的加密软件是 ioncube,因此要能运行禅道专业版本的软件,先要按照ioncube扩展. 一.下载 ...

  2. 六、强大的 Stream API

    一.了解 Stream Java8中有两大最为重要的改变.第一个是 Lambda 表达式:另外一个则是 Stream API(java.util.stream.*).Stream 是 Java8 中处 ...

  3. Swift控制手电筒操作(iOS)

    手电筒是iphone的一个常用功能,最常用的操作就是turn on和turn off,下面我们来实现一个简单的手电筒操作程序:一个按钮来控制iphone手电筒的On和Off,并且按钮的text也做相应 ...

  4. python核心编程笔记——Chapter8

    Chapter8.条件和循环 这一章感觉有用的点并不多,在我眼里就只有迭代器,列表解析和生成器表达式值得研究而已. 8.2.循环,难度不大. #!usr/bin/env python #-*-codi ...

  5. 微服务深入浅出(1)-- SpringBoot

    基于Spring的开发框架,旨在简化配置快速开发,是新一代web开发框架.下面介绍一下常用的几个功能: 1.Spring单元测试 针对DAO层 (1) @RunWith(Spring.class),表 ...

  6. [NOIP2013提高&洛谷P1966]火柴排队 题解(树状数组求逆序对)

    [NOIP2013提高&洛谷P1966]火柴排队 Description 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相 ...

  7. 【leetcode 简单】 第八十四题 两个数组的交集

    给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5], ...

  8. sqlmap tamper脚本

    本文来自:SQLmap tamper脚本注释, 更新了一些脚本,<<不断更新中>> 目前已经总共有50+的脚本,故对源文章进行更新... sqlmap-master ls -l ...

  9. Django-数据库增查

    1/ python manage.py shell ---------一般用于调试操作 2/ 建表--定义类 #产品表 class ProductModel(models.Model): #通过类属性 ...

  10. C - A Plug for UNIX (又是建图坑)

    题目链接:https://cn.vjudge.net/contest/68128#problem/C 没理解好题意真的麻烦,一上午就这么过去了..... 具体思路:按照 源点 ->插座-> ...