秋招笔试

深信服笔试b卷第一题。判断网络是否联通。

#include <algorithm>
#include <iostream>
#include <vector>
#include <map>

using namespace std;
int find(int n, vector<int>& parent) {
    if (parent[n] != n) {
        parent[n] = find(parent[n], parent);
    }
    return parent[n];
}
void unionSet(int a, int b, vector<int>& parent) {
    int rootX = find(a, parent);
    int rootY = find(b, parent);
    if (rootX != rootY) {
        parent[rootX] = rootY;
    }
}
int main() {
    int n, m;
    cin >> n >> m; 
    vector<int> parent(n+1,0);
    for (int i = 1; i < parent.size(); i++) {
        parent[i] = i;
    }
    map<string, int> ip;
    string tmp;
    int id;
    while (n--) {
        cin >> tmp >> id;
        ip[tmp] = id;

    }
   
    while (m--) {
        int a, b;
        cin >> a >> b;
        unionSet(a, b, parent);
    }
    int q;
    cin >> q;
    while (q--) {
        string s1, s2;
        cin >> s1 >> s2;
        int x = ip[s1];
        int y = ip[s2];
        if (find(x, parent) != find(y, parent))
        {
            cout << "No" << endl;
        }
        else {
            cout << "Yes" << endl;
        }
    }

}

#深信服#
全部评论
大佬看看满帮,美股上市公司,南京上海成都都有大量hc,流程快薪资高
点赞
送花
回复
分享
发布于 2023-09-12 22:26 江苏
佬a了多少,过了没
点赞
送花
回复
分享
发布于 2023-09-19 22:59 辽宁
滴滴
校招火热招聘中
官网直投

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务