zoukankan      html  css  js  c++  java
  • poj 1789 Truck History(最小生成树 prim)

    题目:http://poj.org/problem?id=1789

    大意:每个卡车都有自己的编号,由七位字母组成

    d(to,td) is the distance of the types指t0 和 td卡车编号字母不同的个数,即点t0和点td的权

    最好得衍生方案是是的总权值最小,即最小生成树

    用的prim

    View Code
    #include <iostream>
    #include<cstdio>
    #include<cstring>
    #define inf 0x7fffffff
    using namespace std;
    char str[2005][7];
    int map[2005][2005];
    int n;
    int cmp(char *s1,char *s2)
    {
        int i,num=0;
        for(i=0;i<7;i++)
        {
            if(*(s1+i)!=*(s2+i))
            num++;
        }
        return num;
    }
    void prim()
    {
        int vis[2005];
        int dis[2005];
        int i,j;
        memset(vis,0,sizeof(vis));
        vis[0]=1;
        for(i=1;i<n;i++)
        {
            dis[i]=map[0][i];
        }
        int min;
        int pos;
        int ans=0;
        for(i=0;i<n;i++)
        {
            min=inf;
            for(j=0;j<n;j++)
            {
                if(min>dis[j]&&!vis[j])
                {
                    pos=j;
                    min=dis[j];
                }
            }
            if(min==inf)
            break;
            ans+=min;
            vis[pos]=1;
            for(j=0;j<n;j++)
            {
                if(map[pos][j]<dis[j]&&!vis[j]&&map[pos][j]>0)
                {
                    dis[j]=map[pos][j];
                }
            }
        }
        printf("The highest possible quality is 1/%d.\n",ans);
    }
    int main()
    {
        int i,j;
        while(scanf("%d",&n)!=EOF)
        {
            if(n==0)
            break;
            getchar();
            for(i=0;i<n;i++)
            {
                gets(str[i]);
            }
            memset(map,0,sizeof(map));
            for(i=0;i<n-1;i++)
            {
                for(j=i+1;j<n;j++)
                {
                    map[i][j]=cmp(str[i],str[j]);
                    map[j][i]=map[i][j];
                }
            }
            prim();
        }
        return 0;
    }

     

  • 相关阅读:
    uwsgi
    protobuf c++ API
    memcached 第二篇----安装使用
    ice grid配置使用第二篇------实际使用
    ICE BOX 配置,使用----第一篇
    可视化资料收集
    Protocol Buffers
    ice grid 完整部署过程
    django组件之ajax
    关于Django在写小项目的一些小注意事项
  • 原文地址:https://www.cnblogs.com/wanglin2011/p/2800283.html
Copyright © 2011-2022 走看看