牛客白月赛49题解
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客白月赛49题解相关的知识,希望对你有一定的参考价值。
https://ac.nowcoder.com/acm/contest/11226
目录
法【签到】
#include<bits/stdc++.h>
using namespace std;
int main(void)
string a,b; cin>>a>>b;
for(int i=0;i<a.size();i++)
int s1=a[i]-'0';
int s2=b[i]-'0';
cout<<(s1+s2)%3;
return 0;
佛【暴力枚举】
三维暴力。
#include<bits/stdc++.h>
using 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<<sum<<' ';
cout<<'\\n';
return 0;
二维的优化。
#include<bits/stdc++.h>
using 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<<sum<<" ";
puts("");
return 0;
圣【思维】
直接看他给的代码,你会发现其实就是求所有数的异或和。
#include<bits/stdc++.h>
using 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<<ans<<'\\n';
return 0;
以上是关于牛客白月赛49题解的主要内容,如果未能解决你的问题,请参考以下文章