题目名称 | 1523. [UVa 1214] 连线 |
---|---|
输入输出 | manhattanwiring.in/out |
难度等级 | ★★★ |
时间限制 | 5000 ms (5 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cstdio 于2014-02-06加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:7, 提交:11, 通过率:63.64% | ||||
WJMJSDJ | 100 | 4.337 s | 12.03 MiB | C++ |
FoolMike | 100 | 4.580 s | 22.71 MiB | C++ |
thomount | 100 | 4.811 s | 1.44 MiB | C++ |
cstdio | 100 | 10.740 s | 22.84 MiB | C++ |
mikumikumi | 100 | 11.742 s | 27.57 MiB | C++ |
h | 100 | 38.788 s | 22.84 MiB | C++ |
h | 100 | 40.227 s | 22.84 MiB | C++ |
h | 90 | 39.891 s | 20.56 MiB | C++ |
h | 90 | 42.416 s | 20.56 MiB | C++ |
thomount | 0 | 50.000 s | 4.11 MiB | C++ |
关于 连线 的近10条评论(全部评论) | ||||
---|---|---|---|---|
梦迪的代码好优美啊~~~
| ||||
数据组数好像出多了……
反正插头DP能过…… |
有一个被划分成$n\times m$网格的矩形区域。有两个格子被标上“2”,另外两个格子被标上“3”。一些格子被标记成障碍。你应当将两个“2”和两个“3”用不相交的线连接。这些线必须垂直或水平地连接方格的中心,并且不能越过障碍。
不能在障碍格中连线。一个格子中只能有至多一条线。因此,一条线不能与另一条线相交,也不能和它自己相交。在这些限制下,两条线的总长应当最小。规定方格的边长为1。特别地,连接某个格子相邻两边的线长度为1,而连接某个格子中心和它的某条边的线长度为1/2.
输入包含至多150组数据。每组数据的格式如下所示:
第1行是两个正整数$n,m$(1<=n,m<=9)。
接下来n行每行有m个正整数,描述该格子。0表示空格,1表示障碍,2表示写有2的格子,3表示写有3的格子。
输入结束标志为n=m=0.
对每组数据,输出两条折线的最小总长度。如果无解,输出0.
5 5 0 0 0 0 0 0 0 0 3 0 2 0 2 0 0 1 0 1 1 1 0 0 0 0 3 2 3 2 2 0 0 3 3 6 5 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 2 3 0 5 9 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 3 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 9 9 0 0 0 1 0 0 0 0 0 0 2 0 1 0 0 0 0 3 0 0 0 1 0 0 0 0 2 0 0 0 1 0 0 0 0 3 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 2 0 0
18 2 17 12 0 52 43
UVa上的图挂了,大家去《算法竞赛入门经典训练指南》P386看题吧……
刘汝佳,《算法竞赛入门经典训练指南》表6-4