P2583 地铁间谍

题目描述

特工玛利亚被送到S市执行一个特别危险的任务。她需要利用地铁完成他的任务,S市的地铁只有一条线路运行,所以并不复杂。

玛利亚有一个任务,现在的时间为0,她要从第一个站出发,并在最后一站的间谍碰头。玛利亚知道有一个强大的组织正在追踪她,她知道如果一直呆在一个车站,她会有很大的被抓的风险,躲在运行的列车中是比较安全的。所以,她决定尽可能地呆在运行的列车中,她只能往前或往后坐车。

玛利亚为了能准时且安全的到达最后一个车站与对方碰头,需要知道在在车站最小等待时间总和的计划。你必须写一个程序,得到玛丽亚最短的等待时间。当然,到了终点站之后如果时间还没有到规定的时刻,她可以在车站里等着对方,只不过这个等待的时刻也是要算进去的。

这个城市有n个车站,编号是1-n,火车是这么移动的:从第一个车站开到最后一个车站。或者从最后一站发车然后开会来。火车在每特定两站之间行驶的时间是固定的,我们也可以忽略停车的时间,玛利亚的速度极快,所以他可以迅速上下车即使两辆车同时到站。

输入输出格式

输入格式:

输入文件包含多组数据,每组数据都由7行组成

第1行:一个正整数N(2<=N<=50)表示站的数量

第2行:一个正整数T(0<=T<=200)表示需要的碰头时间

第3行:1-(n-1)个正整数(0<ti<70)表示两站之间列车的通过时间

第4行:一个整数M1(1<=M1<=50)表示离开第一个车站的火车的数量

第5行:M1个正整数:d1,d2……dn,(0<=d<=250且di<di+1)表示每一列火车离开第一站的时间

第6行:一个正整数M2(1<=M2<=50)表示离开第N站的火车的数量

第7行:M2个正整数:e1,e2……eM2,(0<=e<=250且ei<ei+1)表示每一列火车离开第N站的时间

最后一行有一个整数0。

输出格式:

对于每个测试案例,打印一行“Case Number N: ”(N从1开始)和一个整数表示总等待的最短时间或者一个单词“impossible”如果玛丽亚不可能做到。按照样例的输出格式。

输入输出样例

输入样例#1:

4
55
5 10 15
4
0 5 10 20
4
0 5 10 15
4
18
1 2 3
5
0 3 6 10 12
6
0 3 5 7 12 15
2
30
20
1
20
7
1 3 5 7 11 13 17
0
输出样例#1:

Case Number 1: 5
Case Number 2: 0
Case Number 3: impossible

说明

第一组样例说明,她0分钟时上车,在3号站下车,立刻坐上(0分始发)15分开的车回去,到2号车站,立刻坐上(20分始发)25开的车到终点,50分到,还需要等待5分钟。

#include<iostream>
#include<cstdio>
using namespace std;
int n,t,ti[],m1,a[][],m2,b[][],Case,cnta[],cntb[],ans;
int a1[];
void dfs(int now,int sum,int wait){
if(sum>t)return;
if(wait>=ans)return;
if(now==n){ans=min(ans,wait+(t-sum));}
if(now<n){//可以向右走
for(int i=;i<=cnta[now];i++){
if(a[now][i]<sum)continue;
int sum_time=a[now][i]-sum+ti[now];
dfs(now+,sum+sum_time,wait+a[now][i]-sum);
}
}
if(now>){//可以向左走
for(int i=;i<=cntb[now];i++){
if(b[now][i]<sum)continue;
int sum_time=b[now][i]-sum+ti[now-];
dfs(now-,sum+sum_time,wait+b[now][i]-sum);
}
}
}
int main(){
freopen("Cola.txt","r",stdin);
while(){
scanf("%d",&n);
if(n==)return ;
scanf("%d",&t);
ans=0x7fffffff;
Case++;
printf("Case Number %d: ",Case);
for(int i=;i<n;i++)scanf("%d",&ti[i]);
scanf("%d",&m1);
int mn=0x7fffffff;
for(int i=;i<=m1;i++){
int tim;
scanf("%d",&tim);mn=min(mn,tim);
a1[i]=tim;
for(int j=;j<=n&&tim<=t;j++){
a[j][++cnta[j]]=tim;
tim+=ti[j];
}
}
scanf("%d",&m2);
for(int i=;i<=m2;i++){
int tim;
scanf("%d",&tim);
for(int j=n;j>=&&tim<=t;j--){
b[j][++cntb[j]]=tim;
tim+=ti[j-];
}
}
for(int i=;i<n;i++)mn+=ti[i];
if(mn>t){
printf("impossible\n");
continue;
}
for(int i=;i<=m1;i++){
dfs(,,a1[i]);
}
printf("%d\n",ans);
}
}

0分 只能过样例的暴力

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,p,t[],m1,t1[],m2,t2[];
int f[][];//在i时,第j个车站等待的时间
bool vis[][][];//在 i 时,第 j 个车站是否有车从 k 方向来
void init(){
memset(f,,sizeof(f));
memset(vis,,sizeof(vis));
memset(t,,sizeof(t));
memset(t1,,sizeof(t1));
memset(t2,,sizeof(t2));
}
void work(int num){
int tmp;
for(int i=;i<=m1;i++){
tmp=t1[i];
for(int j=;j<=n&&tmp<=p;j++){
vis[tmp][j][]=;
tmp+=t[j];
}
}
for(int i=;i<=m2;i++){
tmp=t2[i];
for(int j=n;j>=&&tmp<=p;j--){
vis[tmp][j][]=;
tmp+=t[j-];
}
}
f[][]=;
for(int i=;i<=p;i++){
for(int j=;j<=n;j++){
f[i][j]=min(f[i][j],f[i-][j]+);
if(vis[i][j][]==){
f[i][j]=min(f[i][j],f[i-t[j-]][j-]);
}
if(vis[i][j][]==){
f[i][j]=min(f[i][j],f[i-t[j]][j+]);
}
}
}
if(f[p][n]<=p)printf("Case Number %d: %d\n",num,f[p][n]);
else printf("Case Number %d: impossible\n",num);
}
int main(){
//freopen("Cola.txt","r",stdin);
int num=;
scanf("%d",&n);
while(n!=){
init();
scanf("%d",&p);
for(int i=;i<=n-;i++)scanf("%d",&t[i]);
scanf("%d",&m1);
for(int i=;i<=m1;i++)scanf("%d",&t1[i]);
scanf("%d",&m2);
for(int i=;i<=m2;i++)scanf("%d",&t2[i]);
work(num++);
scanf("%d",&n);
}
}

100分 dp

洛谷P2583 地铁间谍的更多相关文章

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

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

  3. 缩点【洛谷P1262】 间谍网络

    [洛谷P1262] 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他 ...

  4. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  5. 洛谷 P1262 【间谍网络】

    题库 : 洛谷 题号 : 1262 题目 : 间谍网络 link : https://www.luogu.org/problemnew/show/P1262 思路 : 这题可以用缩点的思想来做.先用T ...

  6. 地铁间谍 洛谷 p2583

    题目描述 特工玛利亚被送到S市执行一个特别危险的任务.她需要利用地铁完成他的任务,S市的地铁只有一条线路运行,所以并不复杂. 玛利亚有一个任务,现在的时间为0,她要从第一个站出发,并在最后一站的间谍碰 ...

  7. 洛谷 P1710 地铁涨价

    题目背景 本题开O2优化,请注意常数 题目描述 博艾市除了有海底高铁连接中国大陆.台湾与日本,市区里也有很成熟的轨道交通系统.我们可以认为博艾地铁系统是一个无向连通图.博艾有N个地铁站,同时有M小段地 ...

  8. 洛谷P1710地铁涨价

    题目背景 本题开O2优化,请注意常数 题目描述 博艾市除了有海底高铁连接中国大陆.台湾与日本,市区里也有很成熟的轨道交通系统.我们可以认为博艾地铁系统是一个无向连通图.博艾有N个地铁站,同时有M小段地 ...

  9. 「洛谷P1262」间谍网络 解题报告

    P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...

随机推荐

  1. FI模块与SD、MM的接口配置方法

    [转自 http://blog.itpub.net/195776/viewspace-1023910/] 1 FI/SD 借口配置FI/SD通过tcode VKOA为billing设置过帐科目,用户可 ...

  2. Node.js学习笔记(1):Node.js快速开始

    Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...

  3. iOS MVVM+RAC 从基础到demo

    一.关于经典模式MVC的简介 MVC是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式,市面上大部分App都是这样构建的,具体组建模式不细说,iOS入门者都比较了解(虽然不一定能完 ...

  4. Swift 烧脑体操(四) - map 和 flatMap

    前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...

  5. 大数据 - Zookeeper

    Zookeeper 1.  Zookeeper概念简介: Zookeeper是一个分布式协调服务:就是为用户的分布式应用程序提供协调服务 A.zookeeper是为别的分布式程序服务的 B.Zooke ...

  6. 分享知识-快乐自己:Struts2框架 工作原理及执行流程图(拦截器的使用)

    Struts2 架构图: 1):提交请求 客户端通过 HttpServletRequest 向 Servlet (即Tomcat)提交一个请求. 请求经过一系列的过滤器,例如图中的 ActionCon ...

  7. 机器学习(九)—逻辑回归与SVM区别

    逻辑回归详细推导:http://lib.csdn.net/article/machinelearning/35119 面试常见问题:https://www.cnblogs.com/ModifyRong ...

  8. ES忽略TF-IDF评分——使用constant_score

    Ignoring TF/IDF Sometimes we just don’t care about TF/IDF. All we want to know is that a certain wor ...

  9. 集群 openfire

    openfire_3.8.2集群配置 测试机4台1.四台机器都安装openfire,随即一台安装mysql,执行openfire_mysql.sql脚本.2.四台机器都配置到同一个mysql机器上(不 ...

  10. 苹果手机app试玩平台汇总--手机链接入口

    注意: 点击下载,根据提示步骤走即可. 下载后绑定手机号和微信后.才能提现 每天3点更新任务,4点最多! | 平台 | 提现额 | 任务量| 推荐强度 | 下载 | 1.小鱼,10元,大量,强推! → ...