关注
#include<vector>
#include<iostream>
#include<algorithm>
#include<unordered_set>
#include<unordered_map>
using namespace std;
class Solution {
public:
int N, M, K;
int total;
vector<int> pre;
void solve() {
cin >> N >> M >> K;
total = N;
pre = vector<int>(N+M, -1);
for (int i = 0; i < N; ++i) {
pre[i] = i;
}
int rootu, rootv, u, v;
for (int k = 0; k < K; ++k) {
cin >> u >> v;
--u, --v, v += N;
if (pre[v] == -1) {
pre[v] = unionsearch(u);
}else{
rootu = unionsearch(u);
rootv = unionsearch(v);
if(rootu!=rootv){
pre[rootu] = rootv;
--total;
}
}
}
cout << total - 1 << endl;
}
int unionsearch(int k) {
int root = pre[k];
while (root != pre[root]) {
root = pre[root];
}
int cur_node = k, pre_node = pre[k];
while (cur_node != root) {
pre[cur_node] = root;
cur_node = pre_node;
pre_node = pre[cur_node];
}
return root;
}
};
int main() {
Solution s;
s.solve();
return 0;
}
过了91%
查看原帖
点赞 3
相关推荐
02-04 21:03
兰州财经大学 新媒体运营 求求要我吧:你教育经历放在下面干什么,而且27届还是28届啊()另外看你简历有两面,通常来说投递运营岗位一面简历就够了。另外个人总结要写也放在简历最下面,然后你奖项那里是2019年的哇哈哈,那你究竟投递的是社招还是实习?实习的话你是第几届是肯定要写出来的,社招的话你这个工作经历又太短太花了
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
6048次浏览 92人参与
# 工作中的卑微时刻 #
33384次浏览 199人参与
# 牛客AI体验站 #
16181次浏览 285人参与
# 多益网络工作体验 #
63114次浏览 306人参与
# 有必要和同事成为好朋友吗? #
919次浏览 17人参与
# 正在实习的碎碎念 #
1644705次浏览 13716人参与
# 面试中的破防瞬间 #
1190033次浏览 11026人参与
# 工作一周年分享 #
52292次浏览 274人参与
# 滴!实习打卡 #
786407次浏览 6841人参与
# 秋招吐槽大会 #
304194次浏览 1523人参与
# 机械人的薪资开到多少,才适合去? #
164989次浏览 571人参与
# 你最满意的offer薪资是哪家公司? #
71341次浏览 353人参与
# 大学最后一个寒假,我想…… #
89237次浏览 809人参与
# 哪些公司真双非友好? #
62821次浏览 268人参与
# OC/开奖 #
411192次浏览 2282人参与
# 如果可以选,你最想从事什么工作 #
721811次浏览 4870人参与
# 如何提高实习转正率? #
86466次浏览 504人参与
# 重来一次,你会对开始求职的自己说 #
32764次浏览 388人参与
# 如何确定求职岗位 #
723466次浏览 6427人参与
# 面试线索爆料 #
108624次浏览 641人参与
正浩创新EcoFlow公司福利 754人发布