portal:
。。。暢通工程沒完沒了了
kruskal+並查集
又給出了所有村莊間的距離,保證所有村莊在乙個強連通分量裡,所以直接kruskal
建好的路建造代價為0
1 #include2 #include3 #include1233的**改一改交上去就ac了4 #include5 #include6 #include7 #include8
using
namespace
std;
9#define for(i,j,k) for(int i=j;i<=k;i++)
10#define ford(i,j,k) for(int i=j;i>=k;i--)
11#define ll long long
12#define maxnn 10110
13#define maxn 110
14struct edge;
15edge bb[maxnn];
16int
father[maxn],val[maxn];
17int
n,x,y,z,q,k,ans;
18void
setinit()
1922}23
int setfind(int
x)24
29bool setunion(int xx,int
yy)30
39bool
cmp1(edge a,edge b)
4043
void
kruskal()
4449
intmain()
5062
setinit();
63 ans=0;64
kruskal();
65 cout
67return0;
68 }
繼續暢通工程 hdu 1879
include 2243673 2010 03 24 20 56 41 accepted 1879 375ms 320k 1070 b c 悔惜晟 include 修改了三次終於ac,為何就是 的效率不高 include include using namespace std int s 4991 ...
hdu 1879 繼續暢通工程
include include include typedef structedge edge input 5050 int cost 5050 int parent 5050 int cmp const void a,const void b int root int n int kruskal ...
HDU 1879 繼續暢通工程
和前幾個最小生成樹有點不一樣的地方就是 在kruskal裡面,要先把已經修通的路排在前面 不知道這樣是不是多此一舉呢 再按照每條路的價值從小到大排序 自定義排序規則就是 呼叫c 的sort int cmp const e a,const e b 將每條邊存在結構體edge裡面 struct e ed...