constintMAXN=505;constintINF=0x7fffffff;intxx[MAXN];intpre[MAXN];intmap[MAXN][MAXN];intdist[MAXN];intans,n,flag;voidPrim(){inti,j,k;intmn;boolp[MAXN];for(i=2;i<=n;i++){p[i]=false;pre[i]=1;dist[i]" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Connect the Cities

系統 1887 0

水題,但是g++超時,c++對了 不解

      #include<stdio.h>


      
        const
      
      
        int
      
       MAXN=
      
        505
      
      
        ;


      
      
        const
      
      
        int
      
       INF=
      
        0x7fffffff
      
      
        ;


      
      
        int
      
      
         xx[MAXN];


      
      
        int
      
      
         pre[MAXN];


      
      
        int
      
      
         map[MAXN][MAXN];


      
      
        int
      
      
         dist[MAXN];


      
      
        int
      
      
         ans,n,flag;




      
      
        void
      
      
         Prim()

{

    
      
      
        int
      
      
         i,j,k;

    
      
      
        int
      
      
         mn;

    
      
      
        bool
      
      
         p[MAXN];

    
      
      
        for
      
      (i=
      
        2
      
      ;i<=n;i++
      
        )

    {

        p[i]
      
      =
      
        false
      
      
        ;

        pre[i]
      
      =
      
        1
      
      
        ;

        dist[i]
      
      =map[
      
        1
      
      
        ][i];

    }

    dist[
      
      
        1
      
      ]=
      
        0
      
      
        ;

    p[
      
      
        1
      
      ]=
      
        true
      
      
        ;

    
      
      
        for
      
      (i=
      
        1
      
      ;i<=n-
      
        1
      
      ;i++
      
        )

    {

        mn
      
      =
      
        INF;

        k
      
      =
      
        0
      
      
        ;

        
      
      
        for
      
      (j=
      
        1
      
      ;j<=n;j++
      
        )

        {

            
      
      
        if
      
      (!p[j] && dist[j]<
      
        mn)

            {

                mn
      
      =
      
        dist[j];

                k
      
      =
      
        j;

            }

        }

        
      
      
        if
      
      (k==
      
        0
      
      ) {flag=
      
        1
      
      ; 
      
        return
      
      
         ;}

        p[k]
      
      =
      
        true
      
      
        ;

        ans
      
      +=
      
        dist[k];

        
      
      
        for
      
      (j=
      
        1
      
      ;j<=n;j++
      
        )

        {

            
      
      
        if
      
      (!p[j] && map[k][j]!=INF && dist[j]>
      
        map[k][j])

            {

                dist[j]
      
      =
      
        map[k][j];

                pre[j]
      
      =
      
        k;

            }

        }

    }

}




      
      
        int
      
      
         main()

{

    
      
      
        int
      
      
         T;

    
      
      
        int
      
      
         m,k,t,i,j,a,b,c;

    
      
      
        int
      
      
         xx[MAXN];

    scanf(
      
      
        "
      
      
        %d
      
      
        "
      
      ,&
      
        T);

    
      
      
        while
      
      (T--
      
        )

    {

        scanf(
      
      
        "
      
      
        %d%d%d
      
      
        "
      
      ,&n,&m,&
      
        k);

        {

            
      
      
        for
      
      (i=
      
        1
      
      ;i<=n;i++
      
        )

            {

                
      
      
        for
      
      (j=
      
        1
      
      ;j<=n;j++
      
        )

                {

                    
      
      
        if
      
      (i==j) map[i][j]=
      
        0
      
      
        ;

                    
      
      
        else
      
       map[i][j]=
      
        INF;

                }

            }

            
      
      
        for
      
      (i=
      
        0
      
      ;i<m;i++
      
        )

            {

                scanf(
      
      
        "
      
      
        %d%d%d
      
      
        "
      
      ,&a,&b,&
      
        c);

                
      
      
        if
      
      (map[a][b]>c) map[a][b]=map[b][a]=
      
        c;

            }

            
      
      
        for
      
      (i=
      
        0
      
      ;i<k;i++
      
        )

            {

                scanf(
      
      
        "
      
      
        %d
      
      
        "
      
      ,&
      
        t);

                
      
      
        for
      
      (j=
      
        0
      
      ;j<t;j++
      
        )

                  scanf(
      
      
        "
      
      
        %d
      
      
        "
      
      ,&
      
        xx[j]);

                
      
      
        for
      
      (j=
      
        1
      
      ;j<t;j++
      
        )

                {

                    map[xx[j]][xx[j
      
      -
      
        1
      
      ]]=map[xx[j-
      
        1
      
      ]][xx[j]]=
      
        0
      
      
        ;

                }

            }

            ans
      
      =flag=
      
        0
      
      
        ;

            Prim();

            
      
      
        if
      
      (flag) printf(
      
        "
      
      
        -1\n
      
      
        "
      
      
        );

            
      
      
        else
      
       printf(
      
        "
      
      
        %d\n
      
      
        "
      
      
        ,ans);

        }

    }

    
      
      
        return
      
      
        0
      
      
        ;

}
      
    

Connect the Cities


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲人和日本人hd | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 二区三区| 欧美色射 | 激情爱爱视频 | 九九视频这里只有精品99 | 99免费| 毛片免费毛片一级jjj毛片 | 久久99国产精品久久99 | 九色 91| 天天操精品视频 | 亚洲精品va | 亚洲一区二区三区视频 | 欧美国产精品日韩在线 | free性欧美极度另类超级大 | 国产一久久香蕉国产线看观看 | 亚洲精品人成无码中文毛片 | www.欧美| 亚洲成人在线免费视频 | 色婷婷欧美 | 久草视频播放器 | 免费看又爽又黄禁片视频1000 | 国语高清精品一区二区三区 | 一本色道久久综合一区 | 羞羞在线视频 | 欧美成人久久一级c片免费 欧美成人剧情中文字幕 | 亚洲欧美一区二区三区在线播放 | 国产一区二区三区久久精品小说 | 97综合网| 久久精品在| 我要看一级毛片 | 老司机免费福利视频无毒午夜 | 国产级a爱做片免费观看 | 国产激情一区二区三区 | 视频福利在线 | 国产综合精品久久久久成人影 | 亚洲综合干 | 日韩免费高清一级毛片在线 | 999国产精品999久久久久久 | 久久久久久久综合色一本 | 国产在线公开视频 |