POJ - 3846 Mountain Road 动归
POJ - 3846 Mountain Road
题意:n个人要过桥,有的人从左边来,有的人从右边来,给你他们到达桥一端的时间和过桥所需要的时间,要求相向而行的只能有一人,对于每一个点,不能在10s内有同向而行的人经过。
思路:f[i][j][A/B] 表示 从左边走了i个,从右边走了j个,最后一个是左边还是右边的最小时间。问你最后一辆车的到达时间最小是多少。
对于每一个这样的状态,可以往后面一直推过了k辆反向的车所消耗的时间,只要把出发时间和到达时间的间距都压在10s以上就可以满足条件,不断的更新最优值就行了。
我之前写的时候对于每一个状态只知道推相邻的状态,这样导致转移的代码特别冗杂,最终答案也没有对,而且还超时了,所以这题来讲还是很遗憾没写出来,想到了状态,只是转移的时候犯了错误,没能过掉。
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #define LL long long 6 #define INF 0x3f3f3f3f 7 #define IN freopen("in.txt","r",stdin) 8 #define OUT freopen("out.txt", "w", stdout) 9 #define MAXN 100005 10 using namespace std; 11 #define A 0 12 #define B 1 13 struct Node{ 14 int x, y, pos; 15 }; 16 int n; 17 int f[205][205][2]; 18 Node a[205], b[205]; 19 int a0, b0; 20 int main() 21 { 22 //IN; 23 //OUT; 24 int T; 25 scanf("%d", &T); 26 while(T--){ 27 scanf("%d\n", &n); 28 char ch; 29 int x, y; 30 a0 = 0; 31 b0 = 0; 32 //scanf("%c", &ch); 33 for(int i = 1; i <= n; i++){ 34 scanf("%c", &ch); 35 scanf("%d%d\n", &x, &y); 36 37 if(ch == 'A'){ 38 a0++; 39 a[a0].x = x; 40 a[a0].y = y; 41 a[a0].pos = i; 42 } 43 else{ 44 b0++; 45 b[b0].x = x; 46 b[b0].y = y; 47 b[b0].pos = i; 48 } 49 } 50 int i = 0, j = 0; 51 memset(f, INF, sizeof(f)); 52 f[0][0][A] = 0; 53 f[0][0][B] = 0; 54 int s, t; 55 for(int i = 0; i <= a0; i++){ 56 for(int j = 0; j <= b0; j++){ 57 t = f[i][j][A] - 10; 58 s = f[i][j][A] - 10; 59 for(int k = j + 1; k <= b0; k++){ 60 s = max(s + 10, b[k].x); 61 t = max(t + 10, s + b[k].y); 62 f[i][k][B] = min(f[i][k][B], t); 63 } 64 t = f[i][j][B] - 10; 65 s = f[i][j][B] - 10; 66 for(int k = i + 1; k <= a0; k++){ 67 s = max(s + 10, a[k].x); 68 t = max(t + 10, s + a[k].y); 69 f[k][j][A] = min(f[k][j][A], t); 70 } 71 } 72 } 73 printf("%d\n", min(f[a0][b0][A], f[a0][b0][B])); 74 } 75 return 0; 76 }
转载于:https://www.cnblogs.com/macinchang/p/4747946.html
POJ - 3846 Mountain Road 动归相关推荐
- 【POJ - 3352】Road Construction(Tarjan,边双连通分量)
题干: It's almost summer time, and that means that it's almost summer construction time! This year, th ...
- poj 3352【Road Construction】
狂晕,是我做题太少了吧?我竟然直接按输入输出的模式做题,即输出"Output for Sample Input 1",呜呜,WA了几次就是因为这个................. ...
- uva 12222——Mountain Road
题意:有一个狭窄的山路,两辆车不能同时相向而行,并且同向的车的间隔不能小于10秒,给定一些车的起始时间,求最后一辆车离开的最短时间. 思路:递推,dp(i,j,k)表示A端过了i辆车,B端过了j辆车, ...
- 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》
虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...
- go grpc 深入笔记
为什么80%的码农都做不了架构师?>>> grpc 深入 生命周期 grpc 的生命周期由4种请求的方式不同而不同:(详细查看router示例) 普通rpc: 客户端发送请求, ...
- python plt pyplot matplotlib绘图时形状异常
问题 如图,绘制的饼图和条形图叠加了,但是又不彻底. 原因 绘制过程中我前面绘制了很多图,添加了很多参数,共同作用下导致此问题的出现. 解决 使用plt.close()关掉绘图重新绘制即可. prin ...
- 《算法竞赛入门经典——训练指南》第一章相关内容
#<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...
- A Game of Thrones(46)
28.CATELYN(0) My lady, you ought cover your head," Ser Rodrik told her as their horses plodded ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
最新文章
- SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端
- 数据库跟尾过多的错误,能够的原因阐发及处置惩罚设备
- SAP Fiori Elements - How complex binding defined in XML view is parsed
- 计算机基础应用的培养活动记录,计算机应用基础综合实训
- 就算边框缩窄到极致也不用刘海屏?魅族16s最新渲染图曝光
- html静态化和动态页面,web动态页面静态化,伪静态
- 比较一下几款常用的SSH工具
- resin 系统日志_resin 日志
- 转基因,请你走出这片净土。!!!食用转基因的人,你们伤不起~有木有,有木有啊~!!!!!!!!!!!!!!!
- 无线充电宝效果怎么样,无线充电实用性大吗
- iOS开发脚踏实地学习day14-绘图
- 【JDM】弯道王子,最强马6,马自达Mazda 6 MPS
- 眼球摘除手术| 作为眼科医生最无奈的手术之一,它是如何进行的?
- java-net-php-python-jspm现代化社区去也管理系统计算机毕业设计程序
- EC2 Instance扩容EBS卷容量
- 赴美生子入境经验汇总
- 首届“攀升玩创嘉年华”端午江城噶事!
- Ulink2升级至V2.03
- 测量中的坐标与时间系统1.3(在大地测量学中)
- ubuntu16.04 下怎么挂载iso文件
热门文章
- python后端需要什么基础_python做后端好吗
- 高科技的计算机作文600字,神奇的电脑_600字
- 无线轮播android,Android无限轮播Banner的实现
- python演示验证图像叠加过程_Python叠加矩形框图层2种方法及效果代码实例
- 本地共享映射文件夹进行删除操作_从集群建立到航测建模CC(Smart3D)实用操作教程...
- Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务
- mysql大规模读写性能_十招搞定 MySQL 大规模数据库的性能和伸缩性优化
- linux下nand flash驱动工作原理,Linux下Nand Flash 驱动代码分析
- linux mysql 不稳定_Linux服务器mysql数据库自动停止的解决方法 | 很文博客
- js生日计算年龄_JS根据生日算年龄的方法