#include<bits/stdc++.h>usingnamespace std;int n, m, p, q, fa[1001], ffa[1001], ans;char op;intfind(intx){if(fa[x]== x)return x;
fa[x]=find(fa[x]);return fa[x];}voidhebing(intx,inty){
x =find(x);
y =find(y);if(x != y)
fa[y]= x;return;}intmain(){ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;for(int i =1; i <= n; i++) fa[i]= i;for(int i =1; i <= m; i++){
cin >> op >> p >> q;if(op =='0')hebing(p, q);else{if(!ffa[p])
ffa[p]=find(q);elsehebing(q, ffa[p]);if(!ffa[q])
ffa[q]=find(p);elsehebing(p, ffa[q]);}}for(int i =1; i <= n; i++)if(fa[i]== i)
ans++;
cout << ans;return0;}
#include<bits/stdc++.h>usingnamespace std;int n, m, fa[4999999];structnode{int x, y, z;} a[100001];boolcmp(node x, node y){return x.z> y.z;}intfind(intx){if(fa[x]== x)return x;
fa[x]=find(fa[x]);return fa[x];}voidmerge(intx,inty){int fx =find(x), fy =find(y);if(fx != fy)
fa[fy]= fx;}intmain(){ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;for(int i =1; i <= n *2; i++) fa[i]= i;for(int i =1; i <= m; i++) cin >> a[i].x>> a[i].y>> a[i].z;sort(a +1, a +1+ m, cmp);for(int i =1; i <= m; i++){if(find(a[i].x)==find(a[i].y)){
cout << a[i].z;return0;}merge(a[i].x+ n, a[i].y);merge(a[i].x, a[i].y+ n);}
cout <<0;return0;}
#include<bits/stdc++.h>usingnamespace std;int n, m, fa[4999999];structnode{int x, y, z;} a[100001];boolcmp(node x, node y){return x.z> y.z;}intfind(intx){if(fa[x]== x)return x;
fa[x]=find(fa[x]);return fa[x];}voidmerge(intx,inty){int fx =find(x), fy =find(y);if(fx != fy)
fa[fy]= fx;}intmain(){ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;for(int i =1; i <= n *2; i++) fa[i]= i;for(int i =1; i <= m; i++) cin >> a[i].x>> a[i].y>> a[i].z;sort(a +1, a +1+ m, cmp);for(int i =1; i <= m; i++){if(find(a[i].x)==find(a[i].y)){
cout << a[i].z;return0;}merge(a[i].x+ n, a[i].y);merge(a[i].x, a[i].y+ n);}
cout <<0;return0;}
#include<bits/stdc++.h>usingnamespace std;int n, m, s, t, father[1000001], ans;intfind(intx){if(father[x]== x)return x;
father[x]=find(father[x]);return father[x];}intmain(){ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;for(int i =1; i <= n; i++) father[i]= i;for(int i =1; i <= m; i++){
cin >> s >> t;int p =find(s), q =find(t);if(p != q)
father[p]= q;else
ans++;}
cout << ans;return0;}
共 27 条回复
#1734