HDU 1232 暢通工程

2022-08-12 15:12:15 字數 985 閱讀 1145

portal:

模板題2 da☆ze

話說這題跟隔壁的hdu1213有區別嗎。。。

話說hdu有中文題orz

話說輸入到0為止到底是for(cin>>_;_!=0;cin>>_)還是while(cin>>_)還是用scanf亂搞啊。。。

1 #include2 #include3 #include

4 #include5 #include6 #include7

using

namespace

std;

8#define for(i,j,k) for(int i=j;i<=k;i++)

9#define ford(i,j,k) for(int i=j;i>=k;i--)

10#define ll long long

11#define maxn 1010

12int

t,ans,m,n,x,y;

13int

a[maxn],fa[maxn];

14int father(int

x)15

19void setunion(int x,int

y)20

24//

setsearch(x) return fa[x];

25int

main()

2635

36 ans=0;37

//check

38 for(i,1,n-1)39

if(father(i)!=father(i+1

))40

4142

//prints

43 cout

4445

//clear

46 for(i,1

,n)47 48}

49return0;

50 }

破破爛爛(改)的ac**

大概可以可以用作恢復性用題做?

hdu1232 暢通工程

還是並查集,不過我覺得最後判斷最少路徑自己處理的麻煩了,得去看看大神 code id yueqiq prog numtri lang c include include include include include include include include include include i...

HDU 1232 暢通工程

題目大意 中文題 解題思路 最基礎的並查集,注意一點,雖然路徑優化了,但pre i 不一定就是最上級,所以最後查詢還得用find函式。該部落格詳盡的多 ac include include using namespace std int n,m,t1,t2,pre 1005 setse intfin...

HDU 1232 暢通工程

這題就是並查集的應用,我們可以假設n個城鎮之間皆無道路,那就要修建n 1條道路。每當我們已知兩個城鎮之間是連通的時候,我們就可以讓cnt 1,因為我們沒必要修建道路了。這樣的話我們就不用再壓縮路徑,判斷有多少的集合了。需要注意的一點是,對於並查集的連線,我們應該把它的祖先連線在一起,而不是把它們連線...