电路布线的问题提出是,在一块电路板的上、下两端分别有n个接线柱,用导线
将上端接线柱与下端接线柱相连,其中
是
的一个排列。要求将这n条导线分布到若干绝缘层上,当且仅当两条导线之间无交叉才可以设在同一层。电路布线问题要求确定一个能够布设在同一层的导线集
的最大不相交子集。设
。
1)写出电路布线问题最优值递归定义。
0, j < π(1)
当i=1时,size(1,j)={
1, j > =π(1)
当i>1时, size(i-1,j),j<π(i) , j <π(i)
Size(I,j)={
Max{size(i-1,j),size(i-1,π(i-1)+1},j>=π(i)
package nine;
public class today {
// static int[] c = {6,8,12,2,1,4,5,3,11,7,10,9,13};
static int[] c = {
8,7,4,2,5,1,9,3,10,6};
static int n = c.length;
static int[][] size = new int[n+1][n+1];
static int[] net = new int[n];
public static void main(String[] args) {
mnset(c , size);//计算最优值
int result =