参考: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. Linux下创建vue项目

    前提:已经安装了node.js.cnpm 1.全局安装vue脚手架vue-cli:#cnpm install -g vue-cli 注意:全局安装没有建立软链接前是无法使用刚刚安装的vue命令的,所以 ...

  2. 卡方分布、卡方独立性检验和拟合性检验理论及其python实现

    如果你在寻找卡方分布是什么?如何实现卡方检验?那么请看这篇博客,将以通俗易懂的语言,全面的阐述卡方.卡方检验及其python实现. 1. 卡方分布 1.1 简介 抽样分布有三大应用:T分布.卡方分布和 ...

  3. 108. Convert Sorted Array to Binary Search Tree (building tree with resursion)

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...

  4. C++中临时对象的产生与优化

    看到了几篇讲的不错的博客,这里收集起来 不明白的地方互相参考 https://blog.csdn.net/fangqingan_java/article/details/9320769 https:/ ...

  5. bzoj3816 矩阵变换

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

  6. Django:视图

    Django的View(视图) 一,一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import d ...

  7. Android学习笔记_11_ListView控件使用

    一.界面设计: 1.activity_main.xml文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk ...

  8. c语言描述的二叉树的基本操作(层序遍历,递归,非递归遍历)

    #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define ...

  9. CodePush自定义更新弹框及下载进度条

    CodePush 热更新之自定义更新弹框及下载进度 先来几张弹框效果图 非强制更新场景 image 强制更新场景 image 更新包下载进度效果 image 核心代码 这里的热更新Modal框,是封装 ...

  10. 不再手写import - VSCode自动引入Vue组件和Js模块

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...