文章目录

  • 题目链接:

题目链接:

题意:有N个站台,最终时间T,然后N-1个数表示每两个站台之间需要的时间,然后再给一个M1表示有M1个发车时间,表示从左到右这个方向的火车的发车时间,以及一个M2和M2个数表示从左到右这个方向的火车的发车时间。问这个人从1站台出发,T时刻要到达N站台,但要停留在站台上的时间最少,也就是说尽可能多的时间在火车上

比如第一个样例:
4
55
5 10 15
4
0 5 10 20
4
0 5 10 15

先从①站台坐两站用时15分钟到第③站台,然后用10分钟做回②站台,再用25分钟一口气做到④站台,然后在④站台这里等5分钟时间到达55分钟,并且到了最后一站,并且在站台上等的时间最少

思路:
本来dp就不行,然后看到这道题就不是那种一眼就能反应过来是dp的,我连dp的状态都没有构建好,一开始还想会不会是区间dp,i站台到j站台的最少时间T_T

最后看题解,题解说==时间是单向流逝的,是一个天然的“序”==用dp[t][i]来表示到了t时间人在i站台这里,人要么等火车,要么坐火车走

我看了这个恍然大悟,可不是嘛,时间一确定,人所在的站台一确定,那就什么都确定了啊,这不是就把所有的情况都列举完了嘛~诶,到这里我感觉我对“dp就是优雅的枚举”这话又理解了一点,这道题其实只要把dp[t][i]构建好,方程其实是非常好推出来的

但是我为什么RE呀T_T
后来在clf学弟大佬滴帮助下,终于找到。。。原来是我那里的i没有写范围,当时写的时候想当然的不会超过,以后真是,管他会不会多余哟,没有害处的都写起T_T

#include"bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=2000+5;
int dp[maxn][maxn];//dp[t][i]表示在第t分钟时的位置是在第i个车站在车外等待的最少时间
int a[maxn][maxn];//a[i][j]表示从第i站到第j站需要的时间
int st1[maxn],st2[maxn];//表示顺着和逆着火车的发车时间
bool d1[maxn][maxn],d2[maxn][maxn];//d1[t][i]表示时间t时顺着的或者是否在i站停车
int main()
{for(int Case=1;;Case++){memset(dp,0x3f,sizeof dp);dp[0][1]=0;memset(d1,0,sizeof d1);memset(d2,0,sizeof d2);int N,T;cin>>N;if(N==0)break;cin>>T;for(int i=1; i<N; i++){int t;cin>>t;a[i][i+1]=a[i+1][i]=t;}int M1,M2;cin>>M1;for(int k=1;k<=M1;k++){cin>>st1[k];for(int t=st1[k],i=1;t<=T,i<=N;i++)//这里i没有写i<=N,以及下面的i也没有写范围,导致RE了好久 {d1[t][i]=1;t+=a[i][i+1];}}cin>>M2;for(int k=M2;k>=1;k--){cin>>st2[k];for(int t=st2[k],i=N;t<=T,i>=1;i--)//这里也要写i>=1,不然就有可能跑到负数导致RE {d2[t][i]=1;t+=a[i][i-1];}}for(int t=1; t<=T; t++){for(int i=1; i<=N; i++){dp[t][i]=min(dp[t][i],dp[t-1][i]+1);//原地等待if(i-1>=1 && t-a[i-1][i]>=0 && d1[t-a[i-1][i]][i-1])dp[t][i]=min(dp[t][i],dp[t-a[i-1][i]][i-1]);//从第i-1个站过来if(i+1<=N && t-a[i+1][i]>=0 && d2[t-a[i+1][i]][i+1])dp[t][i]=min(dp[t][i],dp[t-a[i+1][i]][i+1]);//从第i+1个站过来}}int inf=0x3f3f3f3f; if(dp[T][N]==inf)cout<<"Case Number "<<Case<<": "<<"impossible"<<endl;else cout<<"Case Number "<<Case<<": "<<dp[T][N]<<endl;}
}

UVA1025 Thematic Contests相关推荐

  1. LSNU寒假集训 题解

    目录 LSNU寒假第一场(基础算法+几何) A - Fifa and Fafa B - Anton and Lines C - Minimum path D - Thematic Contests E ...

  2. UVA1025——A Spy in the Metro【dp】

    题目链接:https://cn.vjudge.net/problem/UVA-1025 题目大意:Mario从第1站出发,目的是在时刻T会见车站 nnn 的一个间谍.由于在车站等待容易被抓,所以应尽量 ...

  3. AOAPC I: Beginning Algorithm Contests 题解

    AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...

  4. 团体程序设计天梯赛 https://www.patest.cn/contests/gplt

    https://www.patest.cn/contests/gplt 代码: L2-21 //#include<iostream> //#include<cstdio> // ...

  5. Arrangement for Contests

    题目链接:Arrangement for Contests 比较显然的从左往右贪心,然后尽量不影响右边. 强行加了一个线段树. AC代码: #pragma GCC optimize("-Of ...

  6. thematic主题框架安装

    wordpress的thematic主题框架安装基本和普通主题安装没有什么区别,首先到wordpress官方网站下载最新版本的thematic压缩包,地址:http://wordpress.org/e ...

  7. UVA1025 城市里的间谍 A Spy in the Metro(2003 ICPC world final)(DAG上DP)

    整理的算法模板合集: ACM模板 输入比较麻烦 因为时间是单向流逝的,所以是一个天然的"序",我们可以用一维用来循环枚举时间,我们规定 f[i][j]表示当前时刻为i,你的位置为车 ...

  8. uva1025城市里的间谍

    某城市地铁是线性的,有n(2≤n≤50)个车站,从左到右编号1~n.有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开. 列车在相邻站台间所需的运行时间是固定的,因为所有列车的运行速度是 ...

  9. uva1025 动态规划

    这道题的边界是dp(T,N)=0,状态dp(i,j)表示在时间i.第j个车站最少等待时间,有三个决策:1.等1分钟 2.如果有向左的车,向左 3.若果有向右的车,向右  转移方程就是dp(i,j)=m ...

  10. 2016 Multi-University Training Contests

    2016 Multi-University Training Contest 1 2016 Multi-University Training Contest 2 2016 Multi-Univers ...

最新文章

  1. .NET控件名称缩写一览表 zz
  2. 大数据最清楚王宝强离婚事件到底有多热!
  3. C++生成指定范围内的随机数
  4. 一本通1629聪明的燕姿
  5. 2019西北工业大学程序设计创新实践基地春季选拔赛(重现赛)
  6. 推荐 ADO.NET Entity Framework (EDM) 相关技术文章
  7. 自动将word转成双层pdf
  8. 前端弹出对话框 js实现 ajax交互
  9. 从零开始做运营第一课:运营是做什么的?一篇文章解释清楚!
  10. 云计算机遇与挑战,中国云计算产业发展面临机遇与挑战
  11. 1052 卖个萌 (20分)特殊符号输入
  12. 2021年2月8日 抖音直播后端开发实习面经
  13. 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The End 导航页及收尾工作
  14. 名字中间一条线怎么弄_网名怎么加横线啊 网名中间加一条横线
  15. linux中位置变量
  16. SpringCloud系列之六
  17. hihocoder #1272 : 买零食
  18. python 浮点数类型
  19. linux需要的GLIBCXX版本,linux系统下的缺失 libstdc++.so.6: version’GLIBCXX_3.4.20’的问题:...
  20. 学会扒源码-HashMap

热门文章

  1. oracle 9i for redhat9 下载,RedHat9上安装Oracle9i手记(原作:hotman_x)
  2. 【应用案例】资产监测设备助力大棚月季花种植
  3. 中国最具竞争力的十大调查研究咨询公司
  4. 长期吃nmn有副作用吗,nmn产品副作用,真相说明
  5. Android webview 播放视频及全屏
  6. 微信小程序自制底部菜单栏
  7. k8s重要概念及部署k8s集群(一)
  8. SVG,收藏夹图标以及我们可以用它们做的所有有趣的事情
  9. 如何识别Android渠道安装来源追踪?
  10. 如何录屏?电脑屏幕录制软件哪个好?