HDU-1272 小希的迷宮 並查集
#include "stdio.h"
const int maxn = 100050;
int p[maxn],rank[maxn];
bool vis[maxn];
int n,flag;
int find( int x )
{
return p[x] == x ? x:p[x] = find(p[x]);
}
void merge( int a,int b )
{
int x = find(a);
int y = find(b);
if( x!=y )
if( rank[x] > rank[y] )
p[y] = x;
else
{
p[x] = y;
if( rank[x] == rank[y] )
rank[y]++;
}
else
flag = 0;
}
int main()
{
int a,b;
while( scanf("%d%d",&a,&b)==2 ,( a!=-1 || b!=-1 ) )
{
if( !a || !b )
{
puts("Yes");
continue;
}
for( int i = 0; i < maxn; i ++ )
{
p[i]= i;
vis[i]=0;
rank[i] = 0;
}
vis[a] = vis[b] = 1;
flag = 1;
merge(a,b);
while( scanf("%d%d",&a,&b)==2,(a||b) )
{
merge(a,b);
vis[a] = vis[b] = 1;
}
int k = 0;
for( int i = 1; i < maxn; i ++ )
{
if( vis[i] && p[i]==i )
{
k++;
}
if( k>1 )
flag = 0;
}
if( flag )
puts("Yes");
else
puts("No");
}
return 0;
}
相關文章
- 自動走迷宮小遊戲~遊戲
- 走迷宮
- 1744 迷宮
- 509迷宮
- 【並查集】【帶偏移的並查集】食物鏈並查集
- 並查集到帶權並查集並查集
- 並查集(一)並查集的幾種實現並查集
- 迷宮的最短路徑
- 迷宮問題
- 3090 走迷宮
- 3089 探索迷宮
- 並查集的使用並查集
- 查並集
- 創造你的專屬迷宮 《磚塊迷宮建造者》上架WeGameGAM
- 並查集(二)並查集的演算法應用案例上並查集演算法
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- 並查集(小白)並查集
- [leetcode] 並查集(Ⅱ)LeetCode並查集
- [leetcode] 並查集(Ⅲ)LeetCode並查集
- [leetcode] 並查集(Ⅰ)LeetCode並查集
- 3.1並查集並查集
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- 迷宮城堡(HDU-1269)
- PHP 生成迷宮路線PHP
- 迷宮可行路徑數
- Python迷宮生成器Python
- 並查集的應用2並查集
- 並查集應用並查集
- 寫模板, 並查集。並查集
- 並查集跳躍並查集
- 各種並查集並查集
- 淺談並查集並查集
- 食物鏈(並查集)並查集
- 並查集(Union Find)並查集
- The Door Problem 並查集並查集
- 並查集練習並查集
- 簡單易懂的並查集演算法以及並查集實戰演練並查集演算法
- 藍橋杯-走迷宮(BFS)
- PHP 解迷宮之 H 最小PHP