題目鏈結在這裡
題目大意:
給出點和邊,問能否構成一棵樹
思路:
用並查集水過去就行了。hdu1272和這道題一樣的,就是換了個題面和輸出。hdu1272
**如下:
#include #include #include #include #define rep(i, n) for(int i = 0; i < n; ++i)
#define clr(x) memset(x, 0, sizeof(x))
using namespace std;
const int maxn = 1e5 + 10;
int par[maxn], r[maxn];
bool vis[maxn];
int n, cnt, num_edge;
bool flag;
void init()
int find(int x)
bool unite(int x, int y)
return true;
}int main()
else
init();
continue;
}++num_edge;
if(!vis[x])
if(!vis[y])
if(!unite(x, y))
flag = false;
}return 0;
}
poj 1308 並查集判斷「樹」
思路 並查集 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 tr...
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...