zoukankan      html  css  js  c++  java
  • 3.F

    题目连接 http://acm.hust.edu.cn/vjudge/contest/123674#proble

    这是一道最小生成树的模板题,但在输入字符的时候要特别小心,可以用getchar() +scanf() 虽然这样用了,但是不知道哪里总是有问题

    ,可能考虑的不周全,干脆用cin,就对了。一个错误折腾的我要死,for循环里的i忘记附初值了,一直没有结果,调试的时候也是调试的要死

    一切 表明经验不足,知识也没学到位。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define N 30
    #define M 80
    int u[M],v[M],r[M],qu[M];
    int  p[N];
    void inital()
    {
        memset(u,0,sizeof(u));
        memset(v,0,sizeof(v));
        memset(r,0,sizeof(r));
        memset(qu,0,sizeof(qu));
    }
    int com(const int i,const int j)
    {
        return qu[i]<qu[j];
    }
    int find(int x)
    {
        return p[x]==x?x:p[x]=find(p[x]);
    }
    int Kruskal(int n,int m)
    {
    
       int ans=0;
        for(int i=0;i<n;i++) p[i]=i;
        for(int i=0;i<m;i++) r[i]=i;
        sort(r,r+m,com);
        for(int i=0;i<m;i++)
        {
            int e=r[i];
            int x=find(u[e]); int y=find(v[e]);
            if(x!=y)
            {
                ans+=qu[e];
                p[x]=y;
    
            }
        }
        return ans;
    }
    int main()
    {
        int n;
    
        while(scanf("%d",&n)&&n!=0)
        {
            inital();
            char a,b;
            int c,d;
            int bi=0;
            for(int i=0;i<n-1;i++)
            {
                cin>>a>>c;
            //    printf("%c %d %d
    ",a,c,bi);
    
                while(c!=0)
                {
                    cin>>b>>d;
                    u[bi]=(a-'A');
                    v[bi]=(b-'A');
                    qu[bi]=d;
                    //cout<<b<<endl;
    
                  // printf("%d %d %d %d %d 
    ",u[bi],v[bi],qu[bi],c,bi);
                    c--;   bi++;
                }
            }
            printf("%d
    ",Kruskal(n,bi));
        }
        return 0;
    }
  • 相关阅读:
    DOM操作——JavaScript怎样添加、移除、移动、复制、创建和查找节点
    Vue入门实战: 小白总结
    localStorage如何设置过期时间?
    北京游记-2019年小总结
    寒假宅家微记录
    SpringBoot 使用 swagger
    校园旧书交易交换平台
    Html 文件内容展示 图片展示
    Python 简易Cmd控制
    Python 多线程实现循环打印 abc
  • 原文地址:https://www.cnblogs.com/Twsc/p/5716211.html
Copyright © 2011-2022 走看看