社区讨论

样例过了,但测试未过求调

P14102 [ZJCPC 2017] What Kind of Friends Are You?参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhj3q4f0
此快照首次捕获于
2025/11/03 20:13
4 个月前
此快照最后确认于
2025/11/03 20:13
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#include<cstdio>
using namespace std;
int t,n,q;
int main(){
	cin>>t;
	while(t--){
		cin>>n>>q;
		string s[200];
		int c,mm[201][201];
		cin>>c;
		for(int i=0;i<c;i++){
			cin>>s[i];
		}//记录每个人的名字 
		for(int i=0;i<q;i++){
			int mi;
			cin>>mi;
			for(int j=0;j<mi;j++){
				 string op;
				 cin>>op;
				 for(int k=0;k<c;k++){
				 	if(s[k]==op){
					 	mm[k][i]++;
					 	break;
					}
				 }
			}//记录每个人对问题回答真假,1为真,0为假 
		}
		for(int i=0;i<n;i++){
			int r[22];
			for(int j=0;j<q;j++){
				cin>>r[j];
			}
			bool fa=false;
			int u=-1;
			for(int j=0;j<c;j++){
				for(int k=0;k<q;k++){
					if(r[k]!=mm[j][k]){
						fa=true;
						break;
					}//如果回答与已知不符,直接跳到下一个人。 
				}
				if(!fa){
					if(u==-1)u=j;//完全相同则记录此人。 
					else{
						u=-1;
						break;
					}//多个人相同则重置为无法分辨。 
				}
				fa=false;
			}
			if(u==-1)cout<<"Let's go to the library!!"<<endl;
			else{
				for(int i=0;i<s[u].size();i++){
					cout<<s[u][i];
				}
				cout<<endl;//输出人名 
			}
		}
		for(int i=0;i<=c;i++){
			for(int j=0;j<=q;j++){
				mm[i][j]=0;//多测清空 
			}
		}
	}
}

回复

2 条回复,欢迎继续交流。

正在加载回复...