人员分组

xf51357 2002-10-09 05:38:26
题目:
你的任务是将一定数量的人,分成2组,满足以下规则:
1。每个人都要属于一个组。
2。每个队伍至少要一个队员。
3。(关键)每个队伍的队员必须认识队伍里的其他所有人,也就是2个队伍的成员必须互相认识。
4。2支队伍的大小越接近越好。
输入:
每个人都给编一个号:1-N.
第一行是一个整形变量,表示一共有多少个人(N).下面有n行,每一行罗列出第i个人的所认识的人。每一行以0结束。
输出:
如果没有可能分开,这输出“no solution”到teams.out。不然分两行输出结果。每一行第一个数字表示这一组有多少个人(k),然后依次罗列出他们的代号。

例子:
输入1:
5
3 4 5 0 //表示第一个人所认识的人,也就是说其他人都不能和第一个人在同一组
1 3 5 0 //第二个
2 1 4 5 0 //第三个
2 3 5 0 //第四个
1 2 3 4 0 //第五个
输出1:
No Solution //无法解答
输入2:
5
2 3 5 0
1 4 5 3 0
1 2 5 0
1 2 3 0
4 3 2 1 0
输出2:
3 1 3 5 //第一个3代表有3个人在这一组(1,3,5)
2 2 4 //第一个2代表有2个人在这一组(2,4 )

请大家提出你的算法,尽量详细些。
...全文
139 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccmouse 2002-10-09
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/1074/1074931.xml?temp=.6897089
redirect here

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧