第十天26号

题目来源:OpenJudge - 687:Color Tunnels

翻译如下:

描述:

一家生产玩具的公司有一个复杂的系统来为其产品上漆。为了获得所需的颜色,产品必须按指定的顺序涂上几种颜色。产品是通过通过颜色隧道移动来涂漆的。对于每种颜色,至少有一个隧道用该颜色绘制,但可能还有更多。隧道分布在涂装区域,产品必须从一个隧道运送到另一个隧道,以便用给定的颜色涂漆。当涂装过程开始时,产品处于生产工厂的某个点,并且必须最终交付到产品仓库。更正式地说,成品无色产品位于某个给定点(源点),并且在以给定顺序涂上不同颜色后必须交付到另一个给定点(目标点)。有几条隧道,每条隧道都假定为平原上具有特定颜色的线段。隧道的颜色不一定是鲜明的。让< c1,c2,...,cn>是产品要涂漆的n种颜色的序列。该产品需要通过隧道<t1,t2,...tn >使得ti的颜色是ci。请注意,可以在不涂漆的情况下通过隧道,因此上述<t1,t2,...tn >实际上可能是产品通过的隧道的子序列。产品通过隧道的方向并不重要。目标是找到受颜色约束的源到目标的最短路径。路径可能穿过自身,甚至穿过隧道。也允许通过隧道两次(或更多)。请注意,两条隧道可以交叉或重叠,但不同。

输入:

输入文件包含多个测试用例。输入的第一行由单个整数 t(介于 1 和 20 之间)组成,即测试用例的数量。第一行后面是 t 个测试用例的数据。每个测试用例的第一行包含四个实数 xs、ys、xt、yt,它们分别是源和目标的 x 和 y 坐标。测试用例的第二行包含颜色序列:第一个数字是序列的长度(介于 1 和 30 之间),其余行是序列本身。序列中的每种颜色都是 1...100 范围内的整数。第三行包含范围为 1...60 的单个整数 n,这是隧道数,后跟 n 行,每行包含五个数字。前两个数字是隧道一端的 x 和 y 坐标。第三和第四个数字是另一端的 x 和 y 坐标。坐标是实数。第五个数字是 1...100 范围内的整数

输出:

输出文件必须包含 t 行,每行包含受问题约束的从源到目标的路径的最小长度。长度将与小数点后三位精度内的最佳长度进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值