zoukankan      html  css  js  c++  java
  • 最小生成树裸题——pku1287

    一次prim就秒杀……注意是无向图
    View Code
    #include<stdio.h>

    #define MAX 0x3fffffff
    int map[105][105],dis[105];
    bool use[105];
    int n,m;

    void prim(int start)
    {
    int min,rj,i,j,add;
    for(j=1;j<=n;j++)
    {
    dis[j]
    =map[1][j];
    use[j]
    =0;
    }
    use[
    1]=1;
    add
    =0;
    for(i=1;i<n;i++)
    {
    min
    =MAX;
    for(j=1;j<=n;j++)
    {
    if(use[j]==1)continue;
    if(dis[j]<min)
    {
    min
    =dis[j];
    rj
    =j;
    }
    }

    use[rj]
    =1;
    add
    +=min;
    for(j=1;j<=n;j++)
    {
    if(use[j]==1)continue;
    if(dis[j]>map[rj][j])
    dis[j]
    =map[rj][j];
    }
    }
    printf(
    "%d\n",add);
    }

    int main()
    {
    int i,j,a,b,temp;
    while(scanf("%d",&n),n)
    {
    scanf(
    "%d",&m);
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    {
    map[i][j]
    =MAX;
    }
    }
    for(i=1;i<=m;i++)
    {
    scanf(
    "%d%d",&a,&b);
    scanf(
    "%d",&temp);
    if(temp<map[a][b])
    {
    map[b][a]
    =temp;
    map[a][b]
    =temp;//重边的情况,加着总没错
    }
    }

    prim(
    1);
    }
    }

    #include<stdio.h>

    #define MAX 0x3fffffff
    bool use[105];
    int map[105][105];

    int main()
    {
    int n,m,i,j,k,a,b,temp;
    while(scanf("%d",&n),n)
    {
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    {
    map[i][j]
    =MAX;
    }
    use[i]
    =0;
    }
    scanf(
    "%d",&m);
    for(i=1;i<=m;i++)
    {
    scanf(
    "%d%d",&a,&b);
    scanf(
    "%d",&temp);

    if(temp<map[a][b])
    {
    map[a][b]
    =temp;
    map[b][a]
    =temp;
    }
    }

    int min,rj,add=0;
    use[
    1]=1;
    for(k=1;k<n;k++)
    {
    min
    =MAX;

    for(i=1;i<=n;i++)
    {
    if(use[i]==1)
    for(j=1;j<=n;j++)
    {
    if(use[j]==0&&min>map[i][j])
    {
    min
    =map[i][j];
    rj
    =j;
    }
    }
    }
    use[rj]
    =1;
    add
    +=min;
    }

    printf(
    "%d\n",add);
    }
    }
  • 相关阅读:
    mysql学习总结(四)
    mysql学习总结(三)
    mysql学习总结(二)
    mysql学习总结
    学习总结(三十)
    断点续传
    错误总结
    学习总结(三十六)
    学习总结(三十五)
    Linux命令
  • 原文地址:https://www.cnblogs.com/huhuuu/p/1956614.html
Copyright © 2011-2022 走看看