首页 > 代码库 > hdu 1213 -how many tables
hdu 1213 -how many tables
凭记忆打的代码,在学数据结构的时候,用下标索引的方法进行合并,即将相同集合中的数据归为一颗树中的节点,当进行判断的时候,分别找父亲,若是同一个父亲就不用归并,否则就归并。用数组就可以了。
#include<iostream>using namespace std;int index[1001];int getfather(int n){ while(index[n] != n) { n = index[n]; } return n;}int main(){ int m; cin >> m; while(m--) { int peo,pair;; cin >> peo >> pair; for(int i = 1;i <= peo;i++) { index[i] = i; } int fathera; int fatherb; for(int j = 0;j < pair;j++) { int a,b; cin >> a >> b; fathera = getfather(a); fatherb = getfather(b); if(fathera != fatherb) { index[fatherb] = fathera; } } int count = 0; for(int i = 1;i <= peo;i++) { if(i == index[i]) { count++; } } cout << count << endl; } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。