题目在题库中可提交
A.
code :
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 5;
vector<int> ans;
int c[maxn];
int main()
{
	int n,m,p,k,x;
	scanf("%d%d%d",&n,&m,&p);
	for(int i=1;i<=n;i++) {
		scanf("%d",&k);
		for(int j=1;j<=k;j++) {
			scanf("%d",&x);
			c[x]++;
		}
	}	
	for(int i=1;i<=m;i++) 
		if(c[i]==p) ans.push_back(i);
	printf("%d\n",ans.size());
	for(int i=0;i<ans.size();i++) printf("%d ",ans[i]);
	return 0;
}
B.
分析 :最暴力的写法
code :
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 5;
int vis[maxn],p[maxn];
int main()
{
	int n,m,k,ans=0;
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++) cin>>p[i];
	for(int i=1;i<=m;i++) {
		int now=p[i];
		while(1)
		{
		    if(vis[now]) break;
			if(now<n) vis[now]=1;
			now=(now+k)%n;
		}
	}
	for(int i=0;i<n;i++) if(!vis[i]) ans++;
	cout<<ans;
 	return 0;
}