我是靠谱客的博主 舒适小鸽子,最近开发中收集的这篇文章主要介绍The Suspects POJ - 1611,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Union后最后处理跟为0即可

 #include <stdio.h>
 #define MAX_LENGTH 30005
 struct Union {
         int to;
         int rank;
 };
 Union Unions[MAX_LENGTH];
 void init_QucikUnion(int length){
   for (int i = 0;i<=length;i++){
     Unions[i].to = i;
     Unions[i].rank = 0;
     }
 }
 int Find(int n){
   while (Unions[n].to != n)
     n = Unions[n].to ;
   return n;
 }
 void Union(int i,int j){
   i = Find(i);
   j = Find(j);
   if (Unions[i].rank > Unions[j].rank) {
     Unions[j].to = i;
   } else {
     Unions[i].to = j;
     if (Unions[i].rank == Unions[j].rank) Unions[j].rank++;
   }
 }
 
 int main()
 {
   int N,M;
   while (scanf("%d%d",&N,&M) != EOF && (N != 0 || M != 0)){
     init_QucikUnion(N);
     Unions[0].rank = 30005;
     for (int i = 0;i<M;i++){
       int NS;
       scanf("%d",&NS);
       int numbers[30005];
       for (int j = 0;j<NS;j++){
         scanf("%d",&numbers[j]);
       }
       for (int k = 1;k<NS;k++){
         Union(numbers[k-1],numbers[k]);
       }
     }
     int suspects = 1;
     for (int i = 1;i<N;i++)
       if (Find(i) == 0)
         suspects++;
     printf("%dn",suspects++);
   }
   return 0;
 }

最后

以上就是舒适小鸽子为你收集整理的The Suspects POJ - 1611的全部内容,希望文章能够帮你解决The Suspects POJ - 1611所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部