help一下!!!谢谢!也是map映射,但是为什么只有40分啊!!!
查看原帖
help一下!!!谢谢!也是map映射,但是为什么只有40分啊!!!
819682
Exile_Code楼主2023/7/13 21:02
#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <algorithm>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <unordered_set>
#include <unordered_map>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>

map<string, string >name;
string find(string s) {
	if (name[s] == s)
		return s;
	return name[s] = find(name[s]);
}
void u(string s, string ss) {
	if (find(s) != find(ss))
		name[s] = name[ss];

}

int main() {
	int n, m, k;
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		string s; cin >> s;
		name[s] = s;

	}
	for (int i = 0; i < m; i++) {
		string s; string ss;
		cin >> s >> ss;
		u(s, ss);
	}
	cin >> k;
	for (int i = 0; i < k; i++) {
		string s; string ss;
		cin >> s >> ss;
		string x1 = find(s), x2 = find(ss);
		if (x1 != x2) cout<<"No."<<endl;
		else cout<<"Yes."<<endl;

	}
	

	return 0;
}
2023/7/13 21:02
加载中...