题目名称 431. 圆桌会议B
输入输出 dislike.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 7
题目来源 Gravatarcqw 于2010-04-20加入
开放分组 全部用户
提交状态
分类标签
NP问题 搜索法
分享题解
通过:0, 提交:7, 通过率:0%
Gravatarybh 42 4.005 s 0.88 MiB Pascal
Gravatarreamb 28 2.158 s 1.68 MiB Pascal
GravatarYZQ 14 2.149 s 0.32 MiB C++
Gravatarybh 14 2.199 s 0.88 MiB Pascal
Gravatarybh 14 2.212 s 1.09 MiB Pascal
Gravatarjoel 14 3.613 s 0.32 MiB C++
Gravatarjoel 0 3.444 s 0.32 MiB C++
本题关联比赛
20100420
关于 圆桌会议B 的近10条评论(全部评论)

431. 圆桌会议B

★☆   输入文件:dislike.in   输出文件:dislike.out   简单对比
时间限制:1 s   内存限制:128 MiB
【问题描述】
N个政党的领导人参加一次圆桌会议讨论政治问题,但是某些领导人不愿意与其他某些政党的领导人坐在一起。这N个领导人用1,2,…,N来表示。I不愿意与J坐在一起不一定表示J不愿意与I坐在一起,但是在这种情况下,I与J还是不能坐在一起,因为I不喜欢J。
用一个以1开头的1,2,…,N的排列来表示一种安排座位的方案,假定排列的最后一个数字与1是相邻的。排列的方案要以字典顺序输出。而且,顺时针和逆时针的情况被认为是相同的。
写一个程序,输出所有可行的座位安排方案。
输入格式】
输入格式(输入文件名dislike.in)
输入文件包含多组数据。
每组数据的第1行是数据编号C和领导人的数目N(N<=40)。
接下来是一个N行N列的矩阵D,如果I不愿意与J坐在一起,那么矩阵的第,行的第J个数为1,否则为0。同行整数之间用一个空格分隔。
当C=0时输入文件结束。
输出格式】
输出格式(输出文件名dislike.out)
对于输入的每一组数据,首先在一行输出数据编号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