zoukankan      html  css  js  c++  java
  • F

    有一个汽车公司有很多年的汽车制造历史,所以他们会有很多的车型,现在有一些历史学者来研究他们的历史,发现他们的汽车编号很有意思都是有7个小写字母组成的,而且这些小写字母具有一些特别的意义,比如说一个汽车是有另外一个汽车演变过来的,他们的字母差了有几个不同的,就说明演变多少年(最多也就7年!!),现在就是求这些汽车的总演变史最少有多少时间。
    分析:考虑到是个完全图,应该使用prim算法,因为prim是按照点来的,不过还是喜欢krusal,试一下看看能不能过。。
    ***********************************************************************
    很遗憾超时了,我再试一下不更新到底会怎么样,不更新到底能过。。不过也用了700多ms
    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<queue>
    #include<stack>
    using namespace std;

    const int maxn = 2005;

    int f[maxn];
    char p[maxn][10];
    struct node
    {
        int u, v, len;
        friend bool operator < (node a, node b)
        {
            return a.len > b.len;
        }
    };

    int Len(char a[], char b[])
    {
        int sum = 0;
        for(int i=0; a[i]; i++)
            if(a[i] != b[i])sum++;

        return sum;
    }
    int Find(int x)
    {
        if(f[x] != x)
            f[x] = Find(f[x]);
        return f[x];
    }
    int main()
    {
        int N;

        while(scanf("%d", &N) != EOF && N)
        {
            node s;
            priority_queue<node> Q;

            for(s.u=1; s.u<=N; s.u++)
            {
                f[s.u] = s.u;
                scanf("%s", p[s.u]);
                for(s.v=1; s.v<s.u; s.v++)
                {
                    s.len = Len(p[s.u], p[s.v]);
                    Q.push(s);
                }
            }
            int ans = 0, t=0;//如果已经链接了N-1条边就可以结束了
            while(Q.size() && t < N-1)
            {
                s = Q.top();Q.pop();
                int u = Find(s.u), v = Find(s.v);

                if(u != v)
                {
                    t++;
                    f[v] = u;
                    ans += s.len;
                }
            }

            printf("The highest possible quality is 1/%d. ", ans);
        }

        return 0;

    } 

  • 相关阅读:
    springcloud费话之配置中心server修改
    springboot的jar包部署
    Address already in use : connect
    关于账户登录鉴权系统的要点
    springcloud费话之配置中心客户端(SVN)
    springcloud费话之配置中心基础(SVN)
    springcloud费话之断路器(hystrix in feign)
    springcloud费话之Eureka接口调用(feign)
    springcloud费话之Eureka服务访问(restTemplate)
    springcloud费话之Eureka集群
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4674996.html
Copyright © 2011-2022 走看看