最小长度电路板排列问题二

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description



对于给定的电路板连接块,设计一个优先队列式分支限界法,找出所给n个电路板的最佳排列,使得m个连接块中最大长度达到最小。

Input

输入数据的第一行有2 个正整数n和m (1≤m,n≤20)。接下来的n行中,每行有m个数。第k行的第j个数为0 表示电路板k不在连接块j 中,1 表示电路板k在连接块j中。

Output

将计算出的电路板排列最小长度及其最佳排列输出。第1 行是最小长度;接下来的1 行是最佳排列。

Sample Input

8 5
1 1 1 1 1
0 1 0 1 0
0 1 1 1 0
1 0 1 1 0
1 0 1 0 0
1 1 0 1 0
0 0 0 0 1
0 1 0 0 1

Sample Output

4
5 4 3 1 6 2 8 7

Hint

请按照题目要求用优先队列式分支限界法解题。

Source