思路:並查集
#includeusing namespace std;
int pre[500];
bool vis[500];
void make_set()//初始化
int find_set(int x)
void join(int x,int y)//並
int main()
make_set();
bool flag=true;
vis[x]=vis[y]=1;
int first=x;
if(x==y) flag=false;
else join(x,y);
while(scanf("%d%d",&x,&y)&&x!=0)
else join(x,y);
}for(int i=0;i<499;i++)//判斷根節點不唯一的情況
}if(flag) printf("case %d is a tree.\n",h++);
else printf("case %d is not a tree.\n",h++);
} return 0;
}
poj1308 簡單並查集
題目鏈結在這裡 題目大意 給出點和邊,問能否構成一棵樹 思路 用並查集水過去就行了。hdu1272和這道題一樣的,就是換了個題面和輸出。hdu1272 如下 include include include include define rep i,n for int i 0 i n i define...
POJ 1308(並查集,判連通,無環)
題意 給定一組資料 u,v 代表u指向 v。判斷這組資料是否形成一棵樹。題解 利用樹的特性 連通且無環。或者利用樹的性質 無環 或者聯通 且 v e 1 無環可以用並查集去判定。連通可以根據並查集確定有幾個根節點來判斷。邊數 v是加的邊數,點 e可以用 set得出。無環。e v 1。include ...
POJ 1308(樹的判定)
給定乙個有向圖,問這是不是樹?各種判 出現2條相同的邊不是樹,自己指向自己不是樹,除根節點入度為0外其它點入度必須為1,森林,環都不是樹 program p1308 const maxn 15 var i,j longint b array 1.maxn,1.maxn of boolean inde...