网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
圆桌会议B
成绩 | 0 | 开启时间 | 2013年02月21日 星期四 23:02 |
折扣 | 0.8 | 折扣时间 | 2013年02月28日 星期四 23:02 |
允许迟交 | 是 | 关闭时间 | 2013年02月28日 星期四 23:02 |
输入文件 | dislike.in | 输出文件 | dislike.out |
【问题描述】
N个政党的领导人参加一次圆桌会议讨论政治问题,但是某些领导人不愿意与其他某些政党的领导人坐在一起。这N个领导人用1,2,…,N来表示。I不愿意与J坐在一起不一定表示J不愿意与I坐在一起,但是在这种情况下,I与J还是不能坐在一起,因为I不喜欢J。
用一个以1开头的1,2,…,N的排列来表示一种安排座位的方案,假定排列的最后一个数字与1是相邻的。排列的方案要以字典顺序输出。而且,顺时针和逆时针的情况被认为是相同的。
写一个程序,输出所有可行的座位安排方案。
用一个以1开头的1,2,…,N的排列来表示一种安排座位的方案,假定排列的最后一个数字与1是相邻的。排列的方案要以字典顺序输出。而且,顺时针和逆时针的情况被认为是相同的。
写一个程序,输出所有可行的座位安排方案。
【输入格式】
输入格式(输入文件名dislike.in)
输入文件包含多组数据。
每组数据的第1行是数据编号C和领导人的数目N(N<=40)。
接下来是一个N行N列的矩阵D,如果I不愿意与J坐在一起,那么矩阵的第,行的第J个数为1,否则为0。同行整数之间用一个空格分隔。
当C=0时输入文件结束。
输入文件包含多组数据。
每组数据的第1行是数据编号C和领导人的数目N(N<=40)。
接下来是一个N行N列的矩阵D,如果I不愿意与J坐在一起,那么矩阵的第,行的第J个数为1,否则为0。同行整数之间用一个空格分隔。
当C=0时输入文件结束。
【输出格式】
输出格式(输出文件名dislike.out)
对于输入的每一组数据,首先在一行输出数据编号C和所有可行的安排方案的总数K。
接下来的K行按字典顺序输出每种可行的方案。两组相邻的输出数据间用一个空行分隔
对于输入的每一组数据,首先在一行输出数据编号C和所有可行的安排方案的总数K。
接下来的K行按字典顺序输出每种可行的方案。两组相邻的输出数据间用一个空行分隔
(注:输出数据顺序与输入数据一致即可)
【输入输出样例】
输入(dislike.in)
1 5
1 1 0 1 0
0 1 0 0 1
0 0 1 0 0
1 0 0 1 0
0 1 0 1 1
2 6
1 0 1 1 0 0
0 1 0 0 0 1
1 0 1 0 0 0
1 0 0 1 1 0
0 0 1 0 1 1
0 1 0 0 1 1
0
输出(dislike.out)
1 0
2 2
1 5 2 3 4 6
1 5 2 4 3 6
1 5
1 1 0 1 0
0 1 0 0 1
0 0 1 0 0
1 0 0 1 0
0 1 0 1 1
2 6
1 0 1 1 0 0
0 1 0 0 0 1
1 0 1 0 0 0
1 0 0 1 1 0
0 0 1 0 1 1
0 1 0 0 1 1
0
输出(dislike.out)
1 0
2 2
1 5 2 3 4 6
1 5 2 4 3 6