题解:CF2051C Preparing for the Exam

CF2051C Preparing for the Exam

思路

其实莫非就三种情况:

  • 所有题目都会:所有试卷也都会。
  • 2 道题目不会:所有试卷都不会。
  • 1 道题目不会:假设这道题目是 x,那么遍历数组 q 寻找是否有 qi=x,如果有则输出 1,否者输出 0

AC 代码

时间复杂度为Θ(tn)

#include<bits/stdc++.h>
using namespace std;
#define N 300005
long long n,m,k,t,b[N],q[N],vis[N];
int main(){
	cin>>t;
	while(t--){
		cin>>n>>m>>k;
		memset(vis,0,sizeof(vis));
		for(int i=1;i<=m;i++) cin>>b[i];
		for(int i=1;i<=k;i++) cin>>q[i];
		if(k==n){
			for(int i=1;i<=m;i++) cout<<1;
		}
		else if(k==n-1){
			long long now;
			for(int i=1;i<=k;i++) vis[q[i]]=1;
			for(int i=1;i<=n;i++){
				if(vis[i]==0){
					now=i;
					break;
				}
			}
			for(int i=1;i<=m;i++){
				if(b[i]==now) cout<<1;
				else cout<<0; 
			}
		}
		else for(int i=1;i<=m;i++) cout<<0;
		cout<<endl;
	}
	return 0;
} 

AC 记录

posted @   SuperJimmy  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示