题意:

n个车,过一条路,有不同的方向,路上不允许同时有两个方向的车,给出每个车的起始时间,方向,和经过路花费的时间,车最小间隔10个时间,求最后一个车通过路的最早的时间。

分析:

dp[i][j][0]表示0方向经过i个车,1方向经过j个车,最后在0方向,最后一个车通过路的最早的时间。dp[i][j][1]表示0方向经过i个车,1方向经过j个车,最后在1方向,最后一个车通过路的最早的时间。注意车间隔。

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <string>
#include <cctype>
#include <complex>
#include <cassert>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
#define lson l,m,rt<<1
#define pi acos(-1.0)
#define rson m+1,r,rt<<11
#define All 1,N,1
#define read freopen("in.txt", "r", stdin)
const ll  INFll = 0x3f3f3f3f3f3f3f3fLL;
const int INF= 0x7ffffff;
const int mod =  1000000007;
struct node{int s,t;
}l[210],r[210];
int dp[210][210][2],nl,nr;
void solve(){for(int i=0;i<=nl;++i)for(int j=0;j<=nr;++j)dp[i][j][0]=dp[i][j][1]=INF;dp[0][0][0]=dp[0][0][1]=0;for(int i=0;i<=nl;++i)for(int j=0;j<=nr;++j){int ts=dp[i][j][1],te=0;for(int k=i+1;k<=nl;++k){ts=max(ts,l[k].s);te=max(ts+l[k].t,te);dp[k][j][0]=min(dp[k][j][0],te);ts+=10,te+=10;}ts=dp[i][j][0],te=0;for(int k=j+1;k<=nr;++k){ts=max(ts,r[k].s);te=max(ts+r[k].t,te);dp[i][k][1]=min(dp[i][k][1],te);ts+=10,te+=10;}}printf("%d\n",min(dp[nl][nr][0],dp[nl][nr][1]));
}
int main()
{char ch[3];int ca,m;scanf("%d",&ca);while(ca--){scanf("%d",&m);nl=nr=0;int a,b;while(m--){scanf("%s%d%d",ch,&a,&b);if(ch[0]=='A'){++nl;l[nl].s=a;l[nl].t=b;}else if(ch[0]=='B'){++nr;r[nr].s=a;r[nr].t=b;}}solve();}
return 0;
}

转载于:https://www.cnblogs.com/zsf123/p/4909748.html

Mountain Road相关推荐

  1. POJ - 3846 Mountain Road 动归

    POJ - 3846 Mountain Road 题意:n个人要过桥,有的人从左边来,有的人从右边来,给你他们到达桥一端的时间和过桥所需要的时间,要求相向而行的只能有一人,对于每一个点,不能在10s内 ...

  2. uva 12222——Mountain Road

    题意:有一个狭窄的山路,两辆车不能同时相向而行,并且同向的车的间隔不能小于10秒,给定一些车的起始时间,求最后一辆车离开的最短时间. 思路:递推,dp(i,j,k)表示A端过了i辆车,B端过了j辆车, ...

  3. 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》

    虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...

  4. go grpc 深入笔记

    为什么80%的码农都做不了架构师?>>>    grpc 深入 生命周期 grpc 的生命周期由4种请求的方式不同而不同:(详细查看router示例) 普通rpc: 客户端发送请求, ...

  5. python plt pyplot matplotlib绘图时形状异常

    问题 如图,绘制的饼图和条形图叠加了,但是又不彻底. 原因 绘制过程中我前面绘制了很多图,添加了很多参数,共同作用下导致此问题的出现. 解决 使用plt.close()关掉绘图重新绘制即可. prin ...

  6. 《算法竞赛入门经典——训练指南》第一章相关内容

    #<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...

  7. A Game of Thrones(46)

    28.CATELYN(0) My lady, you ought cover your head," Ser Rodrik told her as their horses plodded ...

  8. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  9. LDA的使用记录--TREC,测试

    我觉得做东西最苦恼的是没有思路的瞎忙,做LDA感觉一直限于一种知识点太多,吃不透,苦恼,不想去看的恶性循环中,每当沮丧的时候,内心的程序猿鼓励师就会出现,跟我说,加油,挺住,你可以赢·~今天跟一个做过 ...

  10. 英语单词笔记(沪江-新概念英语第三册篇)

    文章目录 前言 新概念 1-2 3-4 5-6 7-9 10-11 12-13 14-15 16-17 18-19 20-21 22-23 24-25 26-27 28-29 30-31 32-33 ...

最新文章

  1. Attention is not all you need
  2. 4.1 MyEclipse中搭建Struts2开发环境
  3. CodeForces 392C Yet Another Number Sequence 矩阵快速幂
  4. Row_number () over (partition by col1 order by col2)的用法
  5. Functional Programming 资料收集
  6. html ui 下拉列表,Atitit.ui控件-下拉菜单选择控件的实现select html_html/css_WEB-ITnose...
  7. 地址栏js的写法(转载)
  8. 软考信息安全工程师历年真题及答案
  9. 百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践
  10. python 爬阳光高考高校数据
  11. 服务器维护常见的问题
  12. 微信小程序音乐播放器旋转动画
  13. 关于在 firefox 主页自定义背景可以用的图片
  14. 这些手机隐藏功能你知道吗?
  15. [已推荐到体育博客,点击查看更多精彩内容] 篮球上的幽默时刻(多图)
  16. 关于线性空间和线性映射
  17. Jaccard和Levenshtein
  18. 量子计算 11 NSA的随机数阴谋
  19. 互联网公司如何塑造一支有创业精神的技术团队?
  20. Linux驱动开发(一):字符设备

热门文章

  1. 热烈庆祝博客排名进入前一万(8448)
  2. 真人节目《通灵之战》的观后感
  3. linux无法侦听10000以上的端口,linux – git-daemon:“无法在主机(null)端口9418上分配任何侦听套接字”...
  4. mac homebrew安装php5.3,mac mini brew安装了php54,但是我的工作php还是5.3.15?
  5. 串级pid算法c语言实现,【开源】分享一个经典的串级PID算法,附源代码
  6. python可不可以同时执行1000个线程_python怎么能同时执行代码(多线程)?
  7. ESlint 配置从0到1 (二)
  8. 怎么找到安装在Linux系统中的Windows软件的文件
  9. C# 处理XML的基本操作
  10. RHEL 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)