#A0628. 拉多少个群

拉多少个群

题目描述

nn 个人,编号从 1n1\sim n。需要建立若干个聊天群,每个聊天群的人数上限为 mm。需要保证对于任意两个人 x,yx,y,满足如下要求:

  • 至少有一个群既有 xx 又有 yy
  • 至少有一个群只有 xx 没有 yy
  • 至少有一个群只有 yy 没有 xx

假设最多只能建立 kk 个群,请你给出一个满足要求的方案。

输入格式

一行,两个整数:n,m,kn,m,k

输出格式

第一行为建立群的数量(必须小于等于 kk)。

接下来输出 nn 行,每行都对应你的方案的一个群。每行首先输出一个正整数(必须小于等于 mm),表示当前聊天群人数,然后输出这么多个人的编号(必须在 1n1\sim n 的范围内),即当前群内成员。

如果有多种方案,任意输出一种即可。

5 5 10
8
4 1 2 3 4 
4 1 2 3 5
4 2 3 4 5
1 1
3 2 1 4
5 1 2 3 4 5
4 3 1 4 5
1 5

这里给了一种分法,分成了 88 个群,保证了满足题目的三个要求。注意,这个样例提示了我们,可以有只有一个人的群。

数据规模与约定

对于 100%100\% 的数据,2n102 \le n \le 102mn2\le m\le n,保证至少有一个解。

  • 子任务 1(10 分):保证 n=2,k=10n=2,k=10
  • 子任务 2(20 分):保证 m=n,k=n+1m=n,k=n+1
  • 子任务 3(30 分):保证 m=2,k=n2m=2,k=n^2
  • 子任务 4(40 分):保证 k=n×(n1)m1k=\lceil\frac{n\times (n-1)}{m-1}\rceil

数据范围其实放得很开,并且其实有一点点引导性,但无所谓,中秋快乐!