Problem J:一般解空间的队列式分支限界法
Description
试设计一个用队列式分支限界法搜索一般解空间的函数。该函数的参数包括结点可行性
判定函数和上界函数等必要的函数,并将此函数用于解布线问题。
印刷电路板将布线区域划分成 n×m 个方格阵列如图(a)所示。精确的电路布线问题要求
确定连接方格 a 的中点到方格 b 的中点的最短布线方案。在布线时,电路只能沿直线或直
角
布线,如图(b)所示。为了避免线路相交,已布了线的方格做了封锁标记,其它线路不允许
穿过被封锁的方格。
«编程任务:
对于给定的布线区域,编程计算最短布线方案。
Input
由文件 input.txt 给出输入数据。第一行有 3 个正整数 n,m,k,分别表示布线区域方格
阵列的行数,列数和封闭的方格数。接下来的 k 行中,每行 2 个正整数,表示被封闭的方
格
所在的行号和列号。最后的 2 行,每行也有 2 个正整数,分别表示开始布线的方格(p,q)
和
结束布线的方格(r,s)。
Output
将计算出的最短布线长度和最短布线方案输出到文件 output.txt。文件的第一行是最短
布线长度。从文件的第 2 行起,每行 2 个正整数,表示布线经过的方格坐标。如果无法布
线
则输出“No Solution!”。
Sample Input
8 8 3
3 3
4 5
6 6
2 1
7 7
Sample Output
11
2 1