日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > poj 1988(并查集)

poj 1988(并查集)

來源:程序員人生   發布時間:2015-06-04 08:25:21 閱讀次數:2741次

題意:有30000個木塊,編號從1到30000,然后有兩種操作M a b,把木塊a所在的堆塊放到木塊b所在的堆塊上,操作C a,詢問木塊a下面有多少個木塊。
題解:用1個數組s[i]存木塊i所在堆塊1共有多少個木塊,由于要求木塊i下面有多少個木塊,所以再添加1個數組dis[i]存木塊i到根節點有多少個木塊,這樣res = s[i]-dis[i]⑴。dis數組更新放在尋覓根結點遞歸的后面,由于要先更新父親的再更新自己的。

#include <stdio.h> const int N = 30005; char str[5]; int p, pa[N], s[N], dis[N]; int get_parent(int x) { if (x != pa[x]) { int f = pa[x]; pa[x] = get_parent(pa[x]); dis[x] += dis[f]; } return pa[x]; } int main() { int t; for (int i = 0; i <= N; i++) { pa[i] = i; s[i] = 1; dis[i] = 0; } scanf("%d", &t); while (t--) { scanf("%s", str); if (str[0] == 'M') { int a, b; scanf("%d%d", &a, &b); int px = get_parent(a); int py = get_parent(b); pa[py] = px; dis[py] = s[px]; s[px] += s[py]; } else { int a; scanf("%d", &a); int px = get_parent(a); printf("%d ", s[px] - dis[a] - 1); } } return 0; }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 嫩草影视大全 | 成人欧美一区二区三区黑人孕妇 | 懂色av影视一区二区三区 | 欧美日韩国产中文 | 人成福利视频在线观看 | 国产伦精品一区二区三区免费视频 | 一区二区毛片 | 欧美日韩高清 | 欧美精品在线一区二区三区 | a级黄色免费网站 | 国产在线网站 | 亚洲欧美网站 | 欧美一区二区三区在线观看视频 | 精品视频一区二区三区 | 成年人视频网站 | 国产精品久久久久久久久久小说 | av网站免费 | 天堂在线资源8 | 99视频精品在线 | www.怡红院.com | 伊人免费视频 | av毛片在线| 久久精品亚洲国产 | 国产精品视频免费观看 | 亚洲精品免费在线观看 | 91久久国产精品 | 国产99在线播放 | 综合伊人久久 | 久久久蜜臀国产一区二区 | 久久久高清 | 国产一区二区视频在线观看免费 | 日韩性xxx | 男女插入| 日韩国产精品久久久久久亚洲 | 亚洲你懂的 | 在线免费观看污 | 亚洲激情第一页 | 一级毛片在线播放 | 日本精品视频在线观看 | 精品伦理一区二区 | 久久久久久久久久国产精品 |