zoukankan      html  css  js  c++  java
  • POJ1789简单小生成树

    题意:
          给你一些车牌号,然后另一两个车牌号之间的权值就是这两个字符串之间相同位置不同字母的个数,然后求最小生成树。


    思路:
          裸题,不解释了。


    #include<stdio.h>
    #include<algorithm>


    using namespace std;


    typedef struct
    {
        int a ,b ,c;
    }EDGE;


    EDGE edge[2000*2000/2+10];
    int mer[2000+5];
    char str[2000+5][10];




    bool camp(EDGE a ,EDGE b)
    {
        return a.c < b.c;
    }


    int finds(int x)
    {
        return x == mer[x] ? x : mer[x] = finds(mer[x]);
    }


    int main ()
    {
        int n ,i ,j ,ans;
        while(~scanf("%d" ,&n) && n)
        {
            for(i = 1 ;i <= n ;i ++)
            scanf("%s" ,str[i]);
            int nowid = 0;
            for(i = 1 ;i <= n ;i ++)
            {
                for(j = i + 1 ;j <= n ;j ++)
                {
                    ++nowid;
                    edge[nowid].c = 0;
                    edge[nowid].a = i ,edge[nowid].b = j;
                    for(int k = 0 ;k < 7 ;k ++)
                    if(str[i][k] != str[j][k])
                    edge[nowid].c ++;
                }
                mer[i] = i;
            }
            sort(edge + 1 ,edge + nowid + 1 ,camp);
            ans = 0;
            for(i = 1 ;i <= nowid ;i ++)
            {
                int x = finds(edge[i].a);
                int y = finds(edge[i].b);
                if(x == y) continue;
                ans += edge[i].c;
                mer[x] = y;
            }
            printf("The highest possible quality is 1/%d. " ,ans);
        }
        return 0;


    }





  • 相关阅读:
    读写ini文件
    优化SQL Server的内存占用之执行缓存
    跨应用程序进行 Forms 身份验证
    MSDN Visual系列:在MOSS中创建一个BDC实体
    Sql Server中利用自定义函数完成单据流水号的设计
    关于string是值类型还是引用类型
    经典算法C#四种排序算法
    用C#实现HTTP协议下的多线程文件传输
    Windows Phone关于 Llistpicker用法
    Hubtile的应用
  • 原文地址:https://www.cnblogs.com/csnd/p/12062506.html
Copyright © 2011-2022 走看看