百度astar复赛最后一题

来源:互联网 发布:小提琴教学软件 编辑:程序博客网 时间:2024/05/16 09:18

复赛一共5道,这是最后一道。大家可以做做看!

 

第五题. 玉树驰援  ( 时限:120000ms )  
问题描述
4小时以前:青海玉树发生强烈地震,大量房屋倒塌,人员伤亡惨重。灾区急需救援。

2小时以前:政府迅速成立救灾指挥中心。全国各地情系玉树,纷纷筹集救援物资。

1小时以前:指挥中心将若干与玉树有直接或间接道路交通的地区作为集散点。救援物资分批就近到达集散点后,再由汽车运进灾区。一批物资有一个唯一的编号,并由若干个集装箱组成。集散点已有不同数量的汽车在等候,指挥中心可以根据需要进行运输调度。汽车装卸物资的时间可忽略不计。一辆汽车一次最多只能运1个集装箱。

30分钟以前:部分道路由于损坏和堵塞,汽车通行需要较长的时间;部分道路情况更加严重,已经不具备通车条件。指挥中心决定修复和疏通道路,使道路恢复通车,或缩短通行时间。施工需要一定的时间,而且要封闭道路,即在此过程中不能有汽车在该道路上行驶。足够数量的施工队已经待命,可以随时对多条道路进行施工。

现在(2010/4/14 11:49):你被紧急征召到指挥中心。你的任务是调度物资运输和道路施工,在最短的时间内将所有物资运送到玉树灾区。

输入格式
输入由三部分信息组成,依次为交通信息、汽车初始分布信息和物资就绪信息。相邻部分之间用一个空行(/n)隔开。

第一部分:玉树周边的交通信息。每行描述一条道路,格式如下:

地点A 地点B该道路施工所需小时数(t0) 施工前行驶所需小时数(t1) 施工后行驶所需小时数(t2)
值间以一个空格隔开。道路总数不超过256条,任意两地间最多只有一条双向道路直达。地点名为英文字母和数字组成的字符串,长度不超过7字节。玉树的地点名为"Yushu"。 t0, t1, t2为整数。如果t1 = -1,表示该条道路在施工完成前无法通车;其它情况下,t0,t1, t2均大于0且不大于24。

一个空行之后,是第二部分:汽车初始分布信息。每行描述某个集散点初始时有多少汽车在等候,格式如下:

地点 数量
值间以一个空格隔开。集散点总数不超过64,单个集散点汽车的初始数量不超过1024。

一个空行之后,是第三部分:物资就绪信息。每行描述一批物资在何时何地就绪,格式如下:

yyyy/mm/dd HH:MM arrive 地点 物资编号 集装箱数量
值间用一个空格隔开。其中,yyyy/mm/dd HH:MM的时间格式含义为:年/月/日 时:分。物资编号为英文字母和数字组成的字符串,长度不超过7字节。一批物资的集装箱数量不超过2048。

最后一部分以文件结束符结尾。

输入保证所有物资可以在有限时间内运到玉树。

输出格式
你的程序应当按时间顺序在标准输出上打印你下达执行的指令。每条指令一行(不超过255字节,以'/n'结尾),每行各值间用一个空格隔开。指令格式具体如下:

道路施工指令

yyyy/mm/dd HH:MM fix 地点A 地点B
该指令表示在指定时间开始对地点A和地点B的直达道路上进行施工。一条道路不得重复施工。

货物运输指令

yyyy/mm/dd HH:MM trans 地点A 地点B 物资编号:本指令运输的集装箱数量
该指令表示在指定时间开始将某种指定数量的物资从地点A运输到地点B。地点A和地点B必须有直达道路。集装箱数量应为正整数。

空车移动指令

yyyy/mm/dd HH:MM move 地点A 地点B 本指令调动的汽车数量
该指令表示在指定时间开始将指定数量汽车从地点A调度到地点B。地点A和地点B必须有直达道路。汽车数量应为正整数。

注意:所有指令涉及到的时间不得早于2010/4/14 11:49(但可以相等),所有指令一旦下达就不能取消或中断。

样例输入
Yushu A1 7 14 7
Yushu A2 2 -1 5
A2 A3 4 9 6

Yushu 3
A1 40
A2 5
A3 15

2010/4/14 11:59 arrive A2 G1 10

样例输出
2010/4/14 11:49 fix Yushu A2

2010/4/14 11:49 move A3 A2 5

2010/4/14 13:59 trans A2 Yushu G1:5

2010/4/14 20:49 trans A2 Yushu G1:5

评分方法
选取用时最短的选手,按此时间取所有选手的即时快照。按物资到达数量降序排序,第1名满分,其后按物资到达数量比给分。

注:如果没有一个选手完成运输,那么取所有选手的已完成量最大者,按其最后一批物资的到达时间取所有选手的即时快照。如果所有选手均没有将任何物资运送到玉树,则该测试点所有选手均得0分。

如果输出的指令及其运行不符合题目规定,相应测试点得0分。