portal:
模板題2 da☆ze
話說這題跟隔壁的hdu1213有區別嗎。。。
話說hdu有中文題orz
話說輸入到0為止到底是for(cin>>_;_!=0;cin>>_)還是while(cin>>_)還是用scanf亂搞啊。。。
1 #include2 #include3 #include破破爛爛(改)的ac**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 }
大概可以可以用作恢復性用題做?
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,因為我們沒必要修建道路了。這樣的話我們就不用再壓縮路徑,判斷有多少的集合了。需要注意的一點是,對於並查集的連線,我們應該把它的祖先連線在一起,而不是把它們連線...