zoukankan      html  css  js  c++  java
  • 还是畅通工程

    杭电1233

    本题首先要判断两个村庄距离是否最短,其次,两村庄是否联通,即其根结点是否相同;

    方法是将有联系的村庄编号存为数组,将其距离存为对应值,找出不同根结点之间的最小距离,然后相加,得出需建的最短公路;

    View Code
     1 //杭电1233
     2 //C++提交
     3 #include<stdio.h>
     4 #include<string.h>
     5 #define Max 65535
     6 int n;
     7 int f[101][101],set[101];
     8 void power()
     9 {
    10     int i,j,min=f[1][1],k=0,x=1,y=1,totle=0,temp;
    11     while(k<n-1)
    12     {
    13     
    14         for(i=1;i<n;i++)//用循环找出两村庄之间的最短距离,并记下村庄编号i,j,
    15             for(j=i+1;j<=n;j++)
    16             {
    17                 if(min>f[i][j])
    18                 {
    19                     min=f[i][j];
    20                     x=i;
    21                     y=j;
    22                 }
    23             }
    24             if(set[x]!=set[y])//判断这两个村庄的根节点是否一致
    25             {
    26                 k++;
    27                 totle+=min;//记下最短公路距离和
    28                 temp=set[y];
    29                 for(i=1;i<=n;i++)//找出与y村庄共根结点的编号
    30                 {
    31                     if(temp==set[i])
    32                 set[i]=set[x];//将这些共根结点的编号全部置为与x共根结点
    33                 }
    34             }
    35             min=f[x][y]=Max;//把已经记过的距离置为最大,避免下次重复
    36     }
    37     printf("%d\n",totle);
    38 }
    39 
    40 
    41 int main()
    42 {
    43     int i,k;
    44     int a,b,c;
    45     while(scanf("%d",&n),n!=0)
    46     {
    47         for(i=1;i<=n;i++)
    48             set[i]=i;
    49         k=n*(n-1)/2;
    50         
    51         for(i=1;i<=k;i++)
    52         {
    53             scanf("%d%d%d",&a,&b,&c);
    54             f[a][b]=c;//把有联系的村庄存成数组,将其之间的距离赋值给数组
    55         }
    56         power();
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    DNS 截持模拟及环境搭建
    Ant、Gradle、Python三种打包方式的介绍
    oc/c/c++混编老文,写的很好,mark
    好文!关于iOS下的正则表达式实战案例
    Java设计模式——享元模式
    Java 消息机制之回调详解
    windows版爬取csdn
    14.6.2 Configuring InnoDB for Read-Only Operation
    dump iot表
    heap表按字符串和数值型排序规则
  • 原文地址:https://www.cnblogs.com/zlyblog/p/2594825.html
Copyright © 2011-2022 走看看