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條評論
主站蜘蛛池模板: 亚洲精品欧美精品国产精品 | 中文字幕.com | 手机看黄av免费网址 | 嗯啊在线观看免费影院 | 劲爆欧美色欧美 | 在线观看高清国产福利视频 | youjizz欧美粗又大中国 | 欧美精品影视 | 在线欧美视频 | 亚洲欧美日韩不卡一区二区三区 | 欧美中文网 | 日韩成a人片在线观看日本 日韩成人 | 日韩欧美毛片免费观看视频 | 久草在线视频在线观看 | 一级片aaaaaa | 精品理论片一区二区三区 | 久草久草 | 天天草天天干天天 | 日本中文字幕永久在线 | 国产精品欧美亚洲韩国日本99 | 蝌蚪久久| 亚洲精品国产国语 | 可以免费观看欧美一级毛片 | 四虎免费在线 | 久久精品久久精品久久 | 久久97久久97精品免视看 | 久久精品国产91久久麻豆自制 | 久久在线免费观看 | 欧美成人爽毛片在线视频 | 亚洲区在线播放 | 99在线视频网站 | 国产欧美另类久久久品 | 毛片一区 | 香蕉久久网| 成人在线观看国产 | 亚洲精品美女久久久久网站 | 国产精品尹人在线观看免费 | 亚洲一区二区欧美日韩 | 久久中文字幕免费视频 | 天天视频黄 | 一区二区三区免费精品视频 |