设为首页 加入收藏

TOP

hdoj 1232 畅通工程 [并查集]
2015-07-20 18:00:51 来源: 作者: 【 】 浏览:2
Tags:hdoj 1232 畅通 工程 查集

策略: 如题。

并查集:并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 说白了就是点的合并与查询。

代码:

?

#include
  
   
#include
   
     int fat[1005]; int f(int n){ if(fat[n] != n) fat[n] = f(fat[n]); else return fat[n]; } int main() { int n, m, i; while(scanf(%d, &n), n){ scanf(%d, &m); for(i = 1; i <= n; i ++) fat[i] = i; int a, b; while(m --){ scanf(%d%d, &a, &b); int x = f(a); int y = f(b); if(x != y){ //如果 a的祖先不等于b的祖先,就让b的祖先的祖先等于a的祖先,这样两个集合就合并成了一个 fat[y] = x; } } int ans = 0; for(i = 1; i <= n; i ++) if(fat[i] == i) ++ans; printf(%d , ans-1); } return 0; } 
   
  


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3080 Blue Jeans Trie后缀树.. 下一篇HDU 1325 Is It A Tree?

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: