题目在题库中可提交
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;
} 
京公网安备 11010502036488号