简单DAG,每个状态有三种决策,原地傻等,上往左开的车,上往右开的车。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <queue>
#include <deque>
#include <bitset>
#include <list>
#include <cstdlib>
#include <climits>
#include <cmath>
#include <ctime>
#include <algorithm>
#include <stack>
#include <sstream>
#include <numeric>
#include <fstream>
#include <functional>using namespace std;#define MP make_pair
#define PB push_back
typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef pair<int,int> pii;
const int INF = INT_MAX / 3;
const double eps = 1e-8;
const LL LINF = 1e17;
const double DINF = 1e60;
const int maxn = 55;
const int maxt = 400;
int f[maxt][maxn], N, T;
int cost[maxn], M1, M2, d1[maxn], d2[maxn];
bool left_bus[maxn][maxt], right_bus[maxn][maxt];int main() {int kase = 1;while(scanf("%d",&N), N) {memset(f,0x3f,sizeof(f));memset(cost,0,sizeof(cost));memset(left_bus,0,sizeof(left_bus));memset(right_bus,0,sizeof(right_bus));int inf = f[0][0];scanf("%d",&T);for(int i = 1;i < N;i++) scanf("%d",&cost[i]);scanf("%d",&M1);for(int i = 1;i <= M1;i++) scanf("%d",&d1[i]);scanf("%d",&M2);for(int i = 1;i <= M2;i++) scanf("%d",&d2[i]);for(int i = 1;i <= M1;i++) {int nowtime = d1[i];for(int j = 1;j <= N;j++) {left_bus[j][nowtime] = true;nowtime += cost[j];}}for(int i = 1;i <= M2;i++) {int nowtime = d2[i];for(int j = N;j >= 1;j--) {right_bus[j][nowtime] = true;nowtime += cost[j - 1];}}f[0][1] = 0;for(int i = 0;i <= T;i++) {for(int j = 1;j <= N;j++) {//waitf[i + 1][j] = min(f[i + 1][j],f[i][j] + 1);//go left_busif(right_bus[j][i] && j > 1 && i + cost[j - 1] <= T) {f[i + cost[j - 1]][j - 1] = min(f[i + cost[j - 1]][j - 1],f[i][j]);}//go right_busif(left_bus[j][i] && j < N && i + cost[j] <= T) {f[i + cost[j]][j + 1] = min(f[i + cost[j]][j + 1],f[i][j]);}}}printf("Case Number %d: ",kase++);if(f[T][N] == inf) puts("impossible");else printf("%d\n",f[T][N]);}return 0;
}

  

转载于:https://www.cnblogs.com/rolight/p/3966017.html

UVA 1025 A Spy in the Metro DP水题相关推荐

  1. Uva 1025 - A Spy in the Metro(DP)

    题目链接 https://vjudge.net/problem/UVA-1025 [题意]        某城市里的地铁是线性的,有n个车站(2<=n<=50),有M1辆列车从第1站从左往 ...

  2. uva 1025——A Spy in the Metro

    题意:有一个线性的车站(1-n),两个方向的车,给出列车的出发时刻和到下一站的时间,要求在到达n前换乘的等待时间最短. 思路:dp,每次有3种决策,要么等一分钟,要么往左走,要么往右,在3种决策下找到 ...

  3. UVa 1025 A Spy in the Metro

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35913 预处理出每个时间.每个车站是否有火车 为了方便判断是否可行,倒推处理 ...

  4. 寒假每日一题题解(1.29)摘花生(DP水题)

    摘花生 Hello Kitty想摘点花生送给她喜欢的米老鼠. 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来. 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过 ...

  5. 洛谷P1352 没有上司的舞会(树形DP水题)

    题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...

  6. 合并石子 区间dp水题

    合并石子 链接: nyoj 737 描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N- ...

  7. POJ1887 DP水题儿

    http://poj.org/problem?id=1887 题目很基础,就是求 最长减子数列 dp[i]=max{  max{  dp[j]+1 (arr[i]<arr[j]  ;  1< ...

  8. 郊区春游(状压DP水题)+ 记录路径

    题目链接: https://ac.nowcoder.com/acm/problem/16122 题目大意: 中文 具体思路: 首先对全图跑一遍floyed,然后dp[i][j]表示第i个状态在j点停下 ...

  9. 学校作业-Usaco DP水题

    好吧,因为USACO挂掉了,所以我写的所有代码都不保证正确性[好的,这么简单的题,再不写对,你就可以滚粗了! 第一题是USACO 2.2.2 ★Subset Sums 集合  对于从 1 到 N 的连 ...

最新文章

  1. Surface Shading in Tiger Book
  2. python 数组赋值_LeetCode基础算法题第182篇:一维数组的运行总和
  3. 原始Junit测试Spring的问题
  4. SAP CRM Fiori 标准应用 My Account - search by ID 根据 ID 进行搜索的标准功能实现原理
  5. android10适配机型华为,EMUI10适配机型进度公布 这10款机型将率先尝鲜
  6. 地球绕太阳一圈有多远
  7. 从2019年开始,越来越多的人关注“副业”这个词
  8. c语言123 u0010%10,mbsrtowcs_s
  9. JAVA反射--通过反射对pojo进行UT覆盖率测试
  10. 关于java分包原则
  11. C语言 Mkl 矩阵乘法,MKL库矩阵乘法
  12. android怎么测试网速,怎样用手机测网速 安卓手机测网速的方法推荐
  13. 【此后无良辰】实验13 FAT12文件系统
  14. java最好用的浏览器_国内好的pc浏览器评测
  15. Windows 10环境下TensorFlow(gpu版本)配置教程——[图解] [详细版][零基础]
  16. python打九九乘法表上三角下三角_python经典练习题之九九乘法表、打印菱形、打印对顶三角形、斐波拉契数列、素数... - 小黑电脑...
  17. 代码故障检测列表(持续更新)
  18. java调用命令行校对系统时间
  19. 【ISP】Sharpen(2)
  20. sql视图  view 和 MATERIALIZED VIEW

热门文章

  1. 30个基于jQuery的日期时间选择插件
  2. 两高发布司法解释 依法严惩涉地下钱庄犯罪
  3. @hot热加载修饰器导致static静态属性丢失(已解决)
  4. MSSQL分组取后每一组的最新一条记录
  5. information_schema.character_sets 学习
  6. android 开发不能创建目录
  7. 在VS2012中实现Ext JS的智能提示太简单了
  8. Web服务器捉虫速记
  9. leetcode面试题 16.04. 井字游戏
  10. leetcode1247. 交换字符使得字符串相同(贪心)