翻译!
查看原帖
翻译!
1003721
shb20111113楼主2023/8/16 14:59

作为一名计算机科学专业的学生,你当然非常喜欢户外活动,所以你决定去徒步旅行。今年的假期,你选择了一个充满好去处的岛屿。您已经确定了一些非常有前途的轨道,但仍然存在一些问题。选择的数量如此之多,以至于你只能选择最多10^6个景点的“小”子集。

如果这还不够,你对参观景点的顺序非常挑剔。因此,您已经决定了您想要访问预选曲目的顺序。你剩下的问题是决定沿着每条轨道的方向,以及你是否需要进一步减少轨道的选择。在确定了不同轨道端点之间的旅行时间之后,你决定编写一个程序来计算你是否可以在你计划的假期时间内完成所有的旅行。因为您也不想浪费任何宝贵的时间,所以您只关心问题的最佳解决方案。此外,赛道也很有挑战性。这就是为什么你不想沿着一条小路徒步不止一次。

输入格式

输入的第一行给出了测试用例C的数量(0 < C)。每个这样的测试用例的第一行包含两个整数N, T:当前徒步者的轨道数(1)和整个假期徒步所花费的最大时间(0)。以下N行中的每一行都保存了5个整数:c p_ {p} 、c bb_ {bb} 、c be_ {be} 、c eb_ {eb} 和c ee_ {ee} ,它们描述了一个轨迹(按重要性排序)。c p_ {p} 给出以分钟为单位的音轨长度。c xy_ {xy} 给出轨道的正式开始或结束到下一个最重要轨道的开始或结束的旅行时间,其中x和y为b或e。给出的所有值都是不大于10^6的非负整数。因为你必须回到你的车里,所以这个清单是循环的。此外,我们将忽略您开车到达旅行起点所需的时间。

输出格式

对于每个测试用例打印一行。输出应该包含每个轨道的F或B列表(按顺序),指示您是否必须向前或向后移动轨道。如果您不能在计划的时间T内完成整个行程,您应该输出“IMPOSSIBLE”,以表明这些行程只是太多的徒步旅行。你可以假设最优解总是唯一的。

2023/8/16 14:59
加载中...