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

https://blog.csdn.net/c20180630/article/details/75245665

https://blog.csdn.net/rechard_chen/article/details/41357173

https://blog.csdn.net/acvay/article/details/43565183

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N=;
const int M=;
const int INF=1e8;
int n,t,l,r,kcase;//n车站数,t时间,l向右车辆数,kcase样例数
int station_time[N];//车站之间的时间
int have_train[M][N][],dp[M][N];
void test()
{
cout<<'n'<<n<<'t'<<t<<endl;
for (int i=;i<n;i++)
{
cout<<station_time[i]<<' ';
}
cout<<endl;
for (int i=;i<=t;i++)
{
for (int j=;j<=n;j++)
{
printf("[%9d]",dp[i][j]);
}
printf("\n");
}
getchar();
}
void init()
{
cin>>t;
memset(station_time,,sizeof(station_time));
for (int i=;i<n-;i++)
{
cin>>station_time[i];
}
cin>>r;
memset(have_train,,sizeof(have_train));
while (r--)
{
int d;
cin>>d;
for (int j=;j<n;j++)
{
if (d<=t)
{
have_train[d][j][]=;
}
d+=station_time[j-];
}
}
cin>>l;
while (l--)
{
int d;
cin>>d;
for (int j=n;j>;j--)
{
if (d<=t)
{
have_train[d][j][]=;
}
d+=station_time[j-];
}
}
}
void dpp()
{
memset(dp,,sizeof(dp));
for (int j=;j<=n;j++)
{
dp[t][j]=INF;
}
dp[t][n]=;
for (int i=t-;i>=;i--)//注意i>=0!
{
for (int j=;j<=n;j++)
{
dp[i][j]=dp[i+][j]+;
if (j<n&&have_train[i][j][]&&i+station_time[j-]<=t)
{
dp[i][j]=min(dp[i][j],dp[i+station_time[j-]][j+]);
}
if (j>&&have_train[i][j][]&&i+station_time[j-]<=t)//注意判断条件不要写错!
{
dp[i][j]=min(dp[i][j],dp[i+station_time[j-]][j-]);
}
} }
// test();
cout<<"Case Number "<<kcase++<<": ";
if (dp[][]>=INF)
{
cout<<"impossible"<<endl;
}
else
{
cout<<dp[][]<<endl;
}
}
int main()
{
kcase=;
// freopen("btext.txt","r",stdin);
while (cin>>n&&n)
{
init();
dpp();
} return ;
}

【动态规划】[UVA1025]A Spy in the Metro 城市里的间谍的更多相关文章

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

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

  2. 城市里的间谍B901

    城市里的间谍   城市里的间谍 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 某城市的地铁是线性的,有 n(2 <= n ...

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

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

  4. 【Uva1025 A Spy in the Metro】动态规划

    题目描述 某城市地铁是线性的,有n(2≤n≤50)个车站,从左到右编号1~n.有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开.列车在相邻站台间所需的运行时间是固定的,因为所有列车的运 ...

  5. UVA1025 A Spy in the Metro —— DP

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

  6. Uva1025 A Spy in the Metro

    #include <iostream> #include <cstring> #include <cstdio> using namespace std; ]; ] ...

  7. 题解:UVa1025 A Spy in the Metro

    原题链接 pdf 题目大意 给出一张无向图图,求该图的最小瓶颈生成树. 无向图的瓶颈生成树:无向图\(G\)的一颗瓶颈生成树是这样的一颗生成树:它最大的边权值在\(G\)的所有生成树中是最小的.瓶颈生 ...

  8. UVA1025 城市里的间谍

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

  9. UVa 1025 城市里的间谍

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

随机推荐

  1. oracle_procedure

    define: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. ...

  2. 笨办法学Python(三十八)

    习题 38: 阅读代码 现在去找一些 Python 代码阅读一下.你需要自己找代码,然后从中学习一些东西.你学到的东西已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能.这节课我要教给你的是 ...

  3. 最简单的dockerfile使用教程 - 创建一个支持SSL的Nginx镜像

    什么是dockerfile?简单的说就是一个文本格式的脚本文件,其内包含了一条条的指令(Instruction),每一条指令负责描述镜像的当前层(Layer)如何构建. 下面通过一个具体的例子来学习d ...

  4. Kubernetes Helm入门指南

    什么是Helm?这可不是暗黑破坏神里装备的名称:头盔,而是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.我们Helm和Kubernetes的关系,我们可以理解成y ...

  5. Jerry的WebClient UI 42篇原创文章合集

    我要感谢CRM On Premise, 因为在这个产品上做开发让我得以使用WebClient UI框架.有些朋友觉得这个SAP自己发明的基于HTML+ABAP的MVC框架,和现在流行的三驾马车(Ang ...

  6. bzoj3816 矩阵变换

    Description 给出一个 N 行 M 列的矩阵A, 保证满足以下性质: M>N. 矩阵中每个数都是 [0,N] 中的自然数. 每行中, [1,N] 中每个自然数都恰好出现一次.这意味着每 ...

  7. public class Promise<T>: Thenable, CatchMixin

    public class Promise<T>: Thenable, CatchMixin

  8. 给于用户Agent权限设置

    问题:有一个用户需要有create\alter\drop job人权限.默认是只有sysadmin成员才有这个权限.肯定不能将用户放到这个组 答案:所有JOB都属于msdb库中读取和写入信息.所以,肯 ...

  9. POJ 1330 Nearest Common Ancestors 【LCA模板题】

    任意门:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000 ...

  10. jmeter自动生成测试报告

    环境要求1:jmeter3.0版本之后开始支持动态生成测试报表 2:jdk版本1.7以上 3:需要jmx脚本文件 基本操作 1:在你的脚本文件路径下,执行cmd命令:jmeter -n -t test ...