• POJ 2377


    水一发,最小生成树。注意不连通情况。

     1 #include <cstdio> 
     2 #include <iostream> 
     3 #include <cstring>  
     4 #include <cctype>  
     5 #include <algorithm>  
     6 #define LL unsigned __int64
     7 using namespace std; 
     8 
     9 const int N= 1010;
    10 const int M= 20100;
    11 struct Edge{
    12     int u,v,c;
    13     int next;
    14 }edge[M*2];
    15 int head[N];
    16 int n,m,tot;
    17 bool vis[N];
    18 int val[N];
    19 
    20 void addedge(int u,int v,int c){
    21     edge[tot].u=u;
    22     edge[tot].v=v;
    23     edge[tot].c=c;
    24     edge[tot].next=head[u];
    25     head[u]=tot++;
    26 }
    27 
    28 void MST(){
    29     int u=1,v,mm,k;
    30     val[u]=0;
    31     for(int i=1;i<n;i++){
    32         vis[u]=true;
    33         for(int e=head[u];e!=-1;e=edge[e].next){
    34             v=edge[e].v;
    35             if(!vis[v]){
    36                 val[v]=min(val[v],edge[e].c);
    37             }
    38         }
    39         mm=1,k=-1;
    40         for(int j=1;j<=n;j++){
    41             if(!vis[j]&&val[j]<mm){
    42                 mm=val[j];
    43                 k=j;
    44             }
    45         }
    46         if(k==-1) return ;
    47         u=k;
    48     }
    49 }
    50 
    51 int main(){
    52     int u,v,c;
    53     while(scanf("%d%d",&n,&m)!=EOF){
    54         tot=0;
    55         for(int i=1;i<=n;i++){
    56             head[i]=-1;
    57             vis[i]=false,val[i]=1;
    58         }
    59         for(int i=0;i<m;i++){
    60             scanf("%d%d%d",&u,&v,&c);
    61             addedge(u,v,-c);
    62             addedge(v,u,-c);
    63         }
    64         MST();
    65         int ans=0,i;
    66         
    67         for(i=1;i<=n;i++){
    68             if(val[i]==1) break;
    69             ans+=val[i];
    70         }
    71         printf("%d
    ",i>n?-ans:-1);
    72     }
    73     return 0;
    74 }
    View Code
  • 相关阅读:
    第四章 分布式扩展
    第三章 2.性能压测,容量问题
    第三章 1.云部署,打包上传
    MySQL语法大全
    Python随手记
    Python操作Mysql中文乱码问题
    Python基础函数
    破解电信校园网路由限制
    ThinkPHP扩展函数的三个方法
    $_SERVERS预定义变量
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4325662.html
Copyright © 2020-2023  润新知