1 solutions
-
0
C++ :
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int t,n,parent[11000],ans,a,b; int root(int k) { if (parent[k] == k) return k; else return parent[k] = root(parent[k]); } void merge(int a,int b) { parent[root(a)] = root(b); } int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); scanf("%d",&t); while (t--) { scanf("%d",&n); ans = 0; for (int i = 1 ; i <= 10000 ; i ++) parent[i] = i; for (int i = 1; i <= n ; i ++) { scanf("%d%d",&a,&b); if (root(a) != root(b)) merge(root(a),root(b)); else ans ++; } printf("%d\n",ans); } return 0; }
- 1
Information
- ID
- 17318
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By