题解 P1810 【集合分组_NOI导刊2011提高(01) 】
我们可以发现,对于两个相似的集合,其和的差值绝对是0-n之间的,所以,如果我们将其%n+1,结果绝对不等,那么换而言之,%的结果相等的绝对不相似,那么我们就将%的结果相等的放在一个集合里就可以了,集合编号为%的结果+1(因为如果会出现%的结果为0的情况)
代码
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,k;
int main()
{
cin>>n>>k>>m;
for(int i=1;i<=k;i++)
{
int a,u=0,c;
cin>>a;
for(int j=1;j<=a;j++)cin>>c,u+=c;
cout<<u%(n+1)+1<<endl;
}
return 0;
}