HDU1879

Posted whiteli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU1879相关的知识,希望对你有一定的参考价值。

已经建的边两个端点合并一下再跑Kruscal就好了

注意:cin会被卡

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 struct node{
 5     int from,to,w;
 6     bool operator < (const node &a){
 7         return w<a.w;
 8     }
 9 }a[10010];
10 int n,m,u,v,w,x,f[101],ans;
11 
12 void ini(){
13     for (int i=1;i<=n;i++) f[i]=i;
14     ans=0;
15 }
16 
17 int getf(int u){
18     return f[u]==u?f[u]:f[u]=getf(f[u]);
19 }
20 
21 void merge(int u,int v){
22     f[getf(u)]=getf(v);
23 }
24 
25 void solve(){
26     while (scanf("%d",&n)!=EOF){
27         if (n==0) break;
28         ini();
29         m=n*(n-1)/2;
30         for (int i=1;i<=m;i++){
31             scanf("%d %d %d %d",&u,&v,&w,&x);
32             a[i]={u,v,w};
33             if (x) merge(u,v);
34         }
35         sort(a+1,a+1+m);
36         for (int i=1;i<=m;i++){
37             if (getf(a[i].from)!=getf(a[i].to)){
38                 ans+=a[i].w;
39                 merge(a[i].from,a[i].to);
40             }
41         }
42         cout<<ans<<endl;
43     }
44 }
45 
46 int main()
47 {
48     solve();
49     return 0;
50 }

 

以上是关于HDU1879的主要内容,如果未能解决你的问题,请参考以下文章

所有的畅通工程[HDU1232][HDU1874][HDU1875][HDU1879]

HDU1879

hdu 1879 继续畅通project

HDU 1879 - 继续畅通工程

HDU 1879 继续畅通工程 (并查集)

HDU1879--继续畅通工程(最小生成树)