题目名称 1208. 分组问题
输入输出 fenzu.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 56
题目来源 Gravatar王者自由 于2012-10-23加入
开放分组 全部用户
提交状态
分类标签
动态规划
分享题解
通过:0, 提交:0, 通过率:0%
关于 分组问题 的近10条评论(全部评论)
只有简单对比大丈夫?
Gravatar天下第一的吃货殿下
2012-10-24 12:37 1楼

1208. 分组问题

★   输入文件:fenzu.in   输出文件:fenzu.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

你的任务是把一些人分成两组,使得:

·每个人都被分到其中一组;

·每个组都至少有一个人;

·一组中的每个人都认识其他同组成员;

·两组的成员人数尽量接近。

这个问题可能有多个解决方案,你只要输出任意一个即可,或者输出这样的分组法不存在。

【输入】

为了简单起见,所有的人都用一个整数标记,每个人号码不同,从1N

输入文件的第一行包括一个整数N2N100),N就是需要分组的总人数;接下来的N行对应了这N个人,按每个人号码的升序排列,每一行给出了一串号码Aij1AijNAiji),代表了第i个人所认识的人的号码,号码之间用空格隔开,并以一个“0”结束。

【输出】

如果分组方法不存在,就输出信息“No solution”(输出时无需加引号)至输出文件;否则用两行输出分组方案;第一行先输出第一组的人数,然后给出第一组成员的号码,每个号码前有一个空格,同理给出第二组的信息。每组的成员号码顺序和组别顺序并不重要。

【样例】

teams.in                     teams.out

5                            3 1 3 5

2 3 5 0                      2 2 4

1 4 5 3 0

1 2 5 0

1 2 3 0

4 3 2 1 0