目录https://ac.nowcoder.com/acm/contest/11226
- 法【签到】
- 佛【暴力枚举】
- 圣【思维】
#include佛【暴力枚举】using namespace std; int main(void) { string a,b; cin>>a>>b; for(int i=0;i int s1=a[i]-'0'; int s2=b[i]-'0'; cout<<(s1+s2)%3; } return 0; }
三维暴力。
#includeusing namespace std; const int N=510; int n,m,t; int a[N][N],b[N]; int main(void) { cin>>t; while(t--) { cin>>n>>m; int cnt[N][N]={0}; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j],cnt[i][a[i][j]]++; for(int i=1;i<=m;i++) cin>>b[i]; for(int i=1;i<=m;i++) { int sum=0; for(int j=1;j<=n;j++) { bool flag=1; for(int k=1;k<=i;k++) { if(cnt[j][b[k]]==0) flag=0; if(!flag) break; } if(flag) sum++; } cout< 二维的优化。
#includeusing namespace std; const int N=510; int main(void) { int t; cin>>t; while(t--) { int n,m; cin>>n>>m; int cnt[N][N]={0}; int b[N]={0},st[N]={0}; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { int x; cin>>x; cnt[i][x]++; } } for(int i=1;i<=m;i++) cin>>b[i]; int sum=0; for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { if(cnt[j][b[i]]&&st[j]==0) sum++,st[j]=1;//如果这个颜色有 且为标记 if(cnt[j][b[i]]==0&&st[j]==1) sum--;//这个颜色没有,之前标记过 if(cnt[j][b[i]]==0) st[j]=-1;//这个颜色没有 标记为不可能 } cout< 圣【思维】
直接看他给的代码,你会发现其实就是求所有数的异或和。#includeusing namespace std; typedef long long int LL; const int N=1e5*6+10; int n,m,t; LL a[N]; int main(void) { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); cin>>t; while(t--) { cin>>n; LL ans=0; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) ans^=a[i]; cout<



