题目在题库中可提交
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; }