UVA1025 城市里的间谍
#include<iostream>
#include<cstdio>
#include<memory.h>
using namespace std;
#define min(a,b) (a)<(b)?(a):(b)
#define INF 0x3f3f3f3f
#define N 55
#define M 220
int k,n,T,M1,M2,a,b;
int t[N];
int f[M][N];
bool trn[M][N][2];
int main(){
    for(;~scanf("%d",&n) && n;){
        k++;
        memset(t,0,sizeof(t));
        memset(trn,0,sizeof(trn));
        scanf("%d",&T);
        for(int i=1;i<n;i++)
           scanf("%d",&t[i]);
        scanf("%d",&M1);
        for(int i=1;i<=M1;i++){
            scanf("%d",&a);
            for(int j=1;j<=n;j++){
                trn[a][j][0]=1;
                a+=t[j];
            }
        }
        scanf("%d",&M2);
        for(int i=1;i<=M2;i++){
            scanf("%d",&b);
            for(int j=n;j>=1;j--){
                trn[b][j][1]=1;
                b+=t[j-1];
            }
        }
        for(int i=1;i<n;i++)
            f[T][i]=INF;
        f[T][n]=0;
        for(int i=T-1;i>=0;i--)
            for(int j=1;j<=n;j++){
                f[i][j]=f[i+1][j]+1;
                if(j<n && trn[i][j][0] && i+t[j]<=T)
                    f[i][j]=min(f[i][j],f[i+t[j]][j+1]);
                if(j>1 && trn[i][j][1] && i+t[j-1]<=T)
                    f[i][j]=min(f[i][j],f[i+t[j-1]][j-1]);
            }
        printf("Case Number %d: ",k);
        if(f[0][1]>=INF)
            printf("impossible\n");
        else printf("%d\n",f[0][1]);
    }
    return 0;
}
/*
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
*/
UVA1025 城市里的间谍的更多相关文章
- UVa-1025城市里的间谍 A Spy in the Metro
		原题 城市里的间谍 分析 动态规划,dp[i][j]表示你在时刻i,车站j,最少还要等待的时间. 边界条件d[T][n]=0 已经到达,其他d[T][i]=inf不可达. 在一个站点时,有以下三种决策 ... 
- 9-1 A Spy in the Metro  uva1025 城市里的间谍 (DP)
		非常有价值的dp题目 也是我做的第一题dp 真的效率好高 题意:某城市的地铁是线性的 有n个车站 从左到右编号为1-n 有m1辆列车从第一站开始往右开 还有m2辆列车从第n站开始往左开 在 ... 
- 城市里的间谍B901
		城市里的间谍 城市里的间谍 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 某城市的地铁是线性的,有 n(2 <= n ... 
- UVa 1025 城市里的间谍
		https://vjudge.net/problem/UVA-1025 题意:一个间谍要从第一个车站到第n个车站去会见另一个,在是期间有n个车站,有来回的车站,让你在时间T内时到达n,并且等车时间最短 ... 
- 【动态规划】[UVA1025]A Spy in the Metro 城市里的间谍
		参考:https://blog.csdn.net/NOIAu/article/details/71517440 https://blog.csdn.net/c20180630/article/deta ... 
- 我不就是吃点肉,应该没事吧——爬取一座城市里的烤肉店数据(附完整Python爬虫代码)
		写在前面的一点屁话: 对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上"滋滋"的声响,这种期待感是任何其他食物都无法带来的.如果说甜点是" ... 
- DP小合集
		1.Uva1625颜色的长度 dp[i][j]表示前一个串选到第i个 后一个串选到第j个 的最小价值 记一下还有多少个没有结束即dp2 记一下每个数开始和结束的位置 #include<cstdi ... 
- 房子里的K2 BPM业务流程管理
		房…子这件事上,尴尬实在太多. ಥ_ಥ 职场新人,租房很尴尬: 未婚男女,婚房很尴尬: 有下一代的,学区房很尴尬: 耄耋之年,养老房很尴尬... ▽ 甭管买房.租房.装修.设计,关于房子的尴尬事,三天 ... 
- 树形动态规划  fjutoj-2131  第四集,聚集城市
		第四集,聚集城市 TimeLimit:1000MS MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 在小A ... 
随机推荐
- HTTPS 之共享秘钥 公钥 及 私钥
			HTTPS 之共享秘钥 公钥 及 私钥一 共享秘钥1.1 概念共享秘钥和我们生活中同一把锁的钥匙概念类似,对同一把锁来说,加锁时使用什么钥匙,解锁也必须使用同样的钥匙. 1.2 共享秘钥在HTTP传输 ... 
- 20165215 2017-2018-2 《Java程序设计》第九周学习总结
			20165215 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程 ... 
- checkbox 全选效果
			html部分 <p id="all">全选</p> <input type="checkbox" /><br/> ... 
- Andriod post  Api与返回值
			vs后台api控制器 post接收参数----HttpContext.Current.Request.Params["account"].ToString() 返回值为对象返回, ... 
- SSM整合Mybatis-Spring
			mybatis -Spring 整合 cn.kitty.bean public class Book { private int bookid; private String bookname; pr ... 
- JavaScript快速总结之一
			js格式和位置: <!--js内容可以在head中,也可以在body中,不同位置执行顺序会有区别 ,另外也可以单独放到一个js文件中,这样方便维护和修改,而且,可以加快html页面的加载速度.- ... 
- centos6二进制安装mysql5.5
			centos 6.5,安装mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7-4.200902 ... 
- 如何通过 Vue+Webpack 来做通用的前端组件化架构设计
			目录: 1. 架构选型 2. 架构目录介绍 3. 架构说明 4. 招聘消息 目前如果要说比较流行的前端架构哪家强,屈指可数:reactjs.angularjs.emberj ... 
- gitlab服务器迁移
			公司更换了新的服务器,需要把原先的gitlab迁移到新的服务器上. 1.迁移准备工作和思路:从a服务器迁移到b服务器,由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,需 ... 
- JS事件覆盖问题和触发问题
			昨天遇到一个面试题,主要就是事件覆盖问题和触发问题 (不是打广告,无视文本内容) 总之这样的话,会输出三次“做自己的网站”. 为什么不是两次,而是输出三次呢? 1.首先onclick=function ... 
