zoukankan      html  css  js  c++  java
  • 1056-地道

    描述

    话说南京的城市规划一般一般,各个大学分布极不合理,难于沟通。 我们夜猫族打算用一种常人难以想象的方式建立大学通道:用地道使得所有大学都相通。 但地道的造价不菲,而大学生是贫困群体,所以我们希望用尽量小的代价。 已知建设一条地道的费用和地道的距离成正比。其关系是,一个单位的距离需要的花费是7个ACM币,在ACM世界里货币的换算方法简单极了,29个ACM币等于一个DS币,17个DS币等于一个算法币。(ACM币单位为ac,DS币单位为ds,算法币单位为al) 但是学校太多了,而且有些学校不能直接连接(比如,跨湖或跨江地道太难建设了)。需要聪明的你的帮助。

    输入

    第一行包含两个整数N,M。N表示学校总数(1≤N≤100),M表示所有能直接连接的学校的数量(1<=M<=N*(N-1)/2)。 以下M行,每行三个正整数,第一个数和第二个数为学校编号,第三个为这两个学校间的距离L(0<=L<=10000)。

    输出

     

    若干带单位(ac,ds或al)的正整数,数字要尽可能小,单位复杂一点无妨(即把单位(ac,ds,al)转换得尽可能大,能用大单位表示尽量用大单位)数与单位间无空格。

    样例输入

    4 6

    1 2 4

    1 3 9

    1 4 21

    2 3 8

    2 4 17

    3 4 16

    样例输出

    6ds22ac

    #include<iostream>
    #define maxn 105
    using namespace std;
    
    int a,b,c,temp[maxn][maxn],i,j,k1,k2,sum,ans,k,N,M;
    int main()
    {
        while(scanf("%d%d",&N,&M)!=EOF)
        {
            memset(temp,0,sizeof(temp));
            sum=0;
            for(i=0;i<M;i++)
            {
                scanf("%d%d%d",&a,&b,&c);
                temp[a][b]=c;
                temp[b][a]=c;
            }
            temp[1][0]=1;
            for(k=0;k<N-1;k++)
            {
                ans=99999;
                for(j=1;j<=N;j++)
                {
                    if(temp[j][0]==1)
                    {
                        for(i=1;i<=N;i++)
                        {
                            if((temp[j][i]<ans)&&(i!=j)&&(temp[i][0]==0))
                            {
                                ans=temp[j][i];
                                k1=j;
                                k2=i;
                            }
                        }
                    }
                }
                temp[k1][k2]=0;
                temp[k2][k1]=0;
                temp[k2][0]=1;
                sum+=ans;
            }
            sum*=7;
            a=sum/493;
            sum%=493;
            b=sum/29;
            sum%=29;
            c=sum;
            if(a!=0)
                cout<<a<<"al";
            if(b!=0)
                cout<<b<<"ds";
            cout<<c<<"ac"<<endl;
    
        }
        return 0;
    }
    

      

  • 相关阅读:
    MVC之Ajax异步操作
    MVCHtmlHelper使用
    Xamarin.Forms初始
    .NET CORE2.0后台管理系统(一)配置API
    DDD领域驱动之干货(四)补充篇!
    基于官方驱动封装mongodb
    webApi签名验证
    在.Net下使用redis基于StackExchange.Redis
    DDD领域驱动之干货(三)完结篇!
    DDD领域驱动之干货(二)
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436677.html
Copyright © 2011-2022 走看看