点击打开题目

题目大意:

在一个有n个站台的地铁线路里,给你列车通向每相邻两个车站所花费的时间,从0时刻开始,从1号站出发,要在T这个时间点上,到达n号站,给你m1辆从1开到n的列车及其出发时间,和m2辆从n开到1的列车及其出发时间,求在车站停留的最短时间(注意,如果你在T之前的T’时到达n号站,那你也要花费T-T’的时间停留),如果无论如何也到不了n号站,输出“Impossible”

设f[i][j]表示在第i时刻到达j号车站,将每辆列车到每个站的时间预处理一下,则状态转移方程为:

f[i][j]=min(f[i][j],min(f[train1[o][j-1]][j-1]+i-train1[o][j],f[train2[o][j+1]][j+1]+i-train2[o][j]));

代码如下:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int f[201][51],train1[51][51],train2[51][51],t[51];
int T,n,m1,m2,ans;
int getint()
{
int num=0,flag=1;char c;
while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;
while(c>='0'&&c<='9')num=num*10+c-48,c=getchar();
return num*flag;
}
int main()
{
int i,j,o,k=0;
while((n=getint())!=0)
{
ans=1<<30;
memset(f,0x3f,sizeof f);
T=getint();
for(i=0;i<=T;i++)f[i][1]=i;
for(i=1;i<n;i++)t[i]=getint();
m1=getint();
for(i=1;i<=m1;i++)
{
train1[i][1]=getint();
for(j=1;j<n;j++)train1[i][j+1]=train1[i][j]+t[j];
}
m2=getint();
for(i=1;i<=m2;i++)
{
train2[i][n]=getint();
for(j=n;j>1;j--)train2[i][j-1]=train2[i][j]+t[j-1];
}
for(i=1;i<=T;i++)
for(j=1;j<=n;j++)
{
if(j>1)
{
for(o=1;o<=m1;o++)if(train1[o][j]<=i)
f[i][j]=min(f[train1[o][j-1]][j-1]+i-train1[o][j],f[i][j]);
}
if(j<n)
{
for(o=1;o<=m2;o++)if(train2[o][j]<=i)
f[i][j]=min(f[train2[o][j+1]][j+1]+i-train2[o][j],f[i][j]);
}
}
for(i=0;i<=T;i++)ans=min(f[i][n]+T-i,ans);
printf("Case Number %d: ",++k);
if(ans==0x3f3f3f3f)printf("impossible\n");
else printf("%d\n",ans);
}
}

UVA A Spy in the Metro的更多相关文章

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

  2. UVA 1025_A Spy in the Metro

    [题意](小紫书)一个人从站台1出发,乘车要在时刻T到达站台n,为使在站台等车时间最短,她可以选择乘坐两个方向的列车,并在客车停靠站的时候换车. [分析]每次停站下车时,她都有三种选择,1.原地不动 ...

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

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

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

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

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

  6. 洛谷2583 地铁间谍 (UVa1025A Spy in the Metro)

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

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

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

  8. UVa 1025 A Spy in the Metro(动态规划)

    传送门 Description Secret agent Maria was sent to Algorithms City to carry out an especially dangerous ...

  9. UVA 1025 A Spy in the Metro 【DAG上DP/逆推/三维标记数组+二维状态数组】

    Secret agent Maria was sent to Algorithms City to carry out an especially dangerous mission. After s ...

随机推荐

  1. POJ - 3415 Common Substrings (后缀数组)

    A substring of a string T is defined as: T( i, k)= TiTi +1... Ti+k -1, 1≤ i≤ i+k-1≤| T|. Given two s ...

  2. 17.python文件处理

    原文:https://www.cnblogs.com/linhaifeng/articles/5984922.html 文件处理流程: 1. 打开文件,得到文件句柄并赋值给一个变量2. 通过句柄对文件 ...

  3. Linux 操作虚拟机、数据库

    1.打开虚拟机,输入命令:ifconfig 查看iP和端口号,端口号一般为:22 2.打开Xshell(先安装好),连接虚拟机(根据iP和端口号) 若连接成功,Xshell则会显示虚拟机的ip和端口号 ...

  4. cookies 与session

    cookies :存放在浏览器(客户端)的用户信息 - 优点: 可以将数据存在客户端一方: - 缺点: 不安全,可以存放多份,导致服务端占用空间过大 session :存放在服务端的用户信息 - 优点 ...

  5. 【题解】[NOI2019Route](70分)

    占坑 做法是拆掉所有式子,拆完式子看一下,如果A=0,发现边被分为了终点走向n的边和不走向n的边.所以边就有了新的边权,并且可以相加.然后通过网络流建模的套路建模使得满足时间的限制,然后由于有负边,所 ...

  6. spring之为什么要使用AOP(面向切片编程)?

    需求1-日志:在程序执行期间追踪正在发生的活动: 需求2-验证:希望计算器只处理正数的运算: 一.普通方法实现 Calculator.java package com.gong.spring.aop. ...

  7. Pandas常用方法手册

    关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas as pd 导入数据 pd.read_ ...

  8. [MariaDB]MHA高可用部署-实验

    目录 一.简介 1.1MHA角色 二.MHA的工具 三.MHA部署过程 3.1.1 配置 3.1.2 环境规划 3.1.3 配置一主多从 3.2 MHA配置 3.2.1 master权限授予 3.2. ...

  9. MongoDB高级用法

    MongoDB高级查询用法大全 转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册:http://ww ...

  10. 升级添加到现有iOS Xcode项目的Flutter

    如果你在2019年8月之前将Flutter添加到现有iOS项目,本文值得你一看. 在2019年7月30日,合并合并请求flutter / flutter#36793之前Flutter 1.8.4-pr ...