題意:n個點,n-1條邊及其邊的權值(0、1);求每個頂點與它距離最近的點的個數,最後對所有的值進行異或運算。
分析:由題意可知, 求最短距離即求邊權為0,。
考慮用並並查集將邊權為0 的頂點合併,同時記錄每個集合元素的個數。
#include
#include
using
namespace
std;
#define n 100005
int father[n],rank[n],num[n];
void init()
}int find(int x)
void union(int x,int y)
int main()
int s=0;
for(int i=1;i<=n;i++)
s^=num[find(i)];
printf("%d\n",s);
}return
0;}
HDU3938 並查集 並查集
先按邊權值排個序,每次加入一條邊,用並查集,關鍵看懂題。include include include include using namespace std const int maxn 10010 int n,m,q struct edge edges maxn 5 inline int cmp...
hdu1272(並查集基礎)
判斷連通圖中是否有迴路,或者未連線的路。雖說是水題並查集,可我怎麼改都是錯,最後發現,題目資料真是坑,0 0,有毛線意思,也不應該是yes啊。給跪了。include include int v 100010 int f 100010 標誌陣列 int find int x int make int ...
hdu 1272 基礎並查集
上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a,為了提高難度,小希希望...