牛客白月赛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题解的主要内容,如果未能解决你的问题,请参考以下文章

牛客白月赛4 题解

牛客白月赛11题解

牛客白月赛12题解

牛客白月赛10题解

牛客白月赛14题解

牛客白月赛32题解