• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            心如止水
            Je n'ai pas le temps
            posts - 400,comments - 130,trackbacks - 0

            本題描述了一個(gè)連接不同城市的道路系統(tǒng),N個(gè)城市之間有M條道路,給出邊的權(quán)值。其中有D條道路被破壞,這將導(dǎo)致兩個(gè)非常重要的城市AB之間的通訊中斷?,F(xiàn)在要修復(fù)被破壞一些已經(jīng)被破壞的道路,使AB可以通訊,且使總總造價(jià)最小。

            對于這題,我的思路是:對于被破壞的公路,權(quán)值為原來的權(quán)值;沒有被破壞的,因?yàn)椴恍枰亟?,即重建的造價(jià)為0,所以權(quán)值修改為0,轉(zhuǎn)化為了求AB之間最短路徑的題目。

            我是用begin[i]end[i]記錄被破壞道路的起點(diǎn)和終點(diǎn),這樣做需要注意一點(diǎn),即在構(gòu)造新圖的時(shí)候,必須仍舊是無向圖。為了代碼的簡潔,程序中用到了goto語句。

            我的代碼如下:

            #include<stdio.h>
            #define MAXN 101
            #define MAXINT 200000000
            long n,m,d,a,b,g[MAXN][MAXN],begin[220],end[220];
            void solve()
            {
                
            long i,j,k,min,g2[MAXN][MAXN],dist[MAXN],visit[MAXN];
                
            for(i=0;i<=n;i++)
                  
            for(j=0;j<=n;j++)
                  
            {
                     
            if(g[i][j]!=MAXINT)
                       g2[i][j]
            =0;
                     
            else g2[i][j]=MAXINT;
                  }

                
            for(i=1;i<=d;i++)
                
            {
                   g2[begin[i]][end[i]]
            =g[begin[i]][end[i]];
                   g2[end[i]][begin[i]]
            =g[end[i]][begin[i]];
                }

                
            // Init
                for(i=0;i<=n;i++)
                  visit[i]
            =0;
                visit[a]
            =1;
                
            for(i=1;i<=n;i++)
                  dist[i]
            =g2[a][i];
                dist[a]
            =0;
                
            for(i=1;i<=n;i++)
                
            {
                   min
            =MAXINT;
                   k
            =0;
                   
            for(j=1;j<=n;j++)
                     
            if(!visit[j]&&dist[j]<min)
                     
            {
                        min
            =dist[j];
                        k
            =j;
                     }

                   
            if(k==0break;
                   visit[k]
            =1;
                   
            for(j=1;j<=n;j++)
                     
            if(!visit[j]&&dist[k]+g2[k][j]<dist[j])
                       dist[j]
            =dist[k]+g2[k][j];
                }

                printf(
            "%ld\n",dist[b]);
            }

            void run()
            {
                
            long i,j,t1,t2,w;
                RUN_BEGIN:
                  scanf(
            "%ld",&n);
                  
            if(n==0return;
                  scanf(
            "%ld",&m);
                  
            for(i=0;i<=n;i++)
                    
            for(j=0;j<=n;j++)
                      g[i][j]
            =MAXINT;
                  
            for(i=1;i<=m;i++)
                  
            {
                     scanf(
            "%ld%ld%ld",&t1,&t2,&w);
                     g[t1][t2]
            =w;
                     g[t2][t1]
            =w;
                  }

                  scanf(
            "%ld",&d);
                  
            for(i=1;i<=d;i++)
                    scanf(
            "%ld%ld",&begin[i],&end[i]);
                  scanf(
            "%ld%ld",&a,&b);
                  solve();
                
            goto RUN_BEGIN;
            }

            int main()
            {
                freopen(
            "rebuild.in","r",stdin);
                freopen(
            "rebuild.out","w",stdout);
                run();
            return 0;
            }

            posted on 2010-01-06 19:56 lee1r 閱讀(484) 評論(0)  編輯 收藏 引用 所屬分類: 題目分類:圖論
            国内精品九九久久精品| 国产精品久久久久久福利漫画| 国产精品欧美亚洲韩国日本久久| 精品一区二区久久久久久久网站| 久久夜色精品国产亚洲| 国产精品久久新婚兰兰| 99久久久国产精品免费无卡顿| 国产精品99久久精品爆乳| 国产精品乱码久久久久久软件 | 伊人久久大香线蕉成人| 久久久婷婷五月亚洲97号色| 久久黄视频| 精品无码久久久久久午夜| 久久夜色精品国产| 久久国产精品99精品国产987| 青青草国产97免久久费观看| 粉嫩小泬无遮挡久久久久久| 亚洲欧美日韩久久精品| 曰曰摸天天摸人人看久久久| 亚洲精品乱码久久久久久| 久久久久亚洲AV无码去区首| 99久久99这里只有免费费精品| 蜜桃麻豆www久久国产精品| 99久久精品免费看国产一区二区三区| 国产精品久久久香蕉| 久久综合九色欧美综合狠狠| 日本免费一区二区久久人人澡| 久久久久久久亚洲Av无码| 日产精品久久久久久久| 久久精品国产亚洲Aⅴ蜜臀色欲| 麻豆精品久久精品色综合| 久久精品中文字幕无码绿巨人| 久久久久久久久波多野高潮| 无码任你躁久久久久久| 久久伊人色| 久久久午夜精品福利内容| 国内精品伊人久久久久妇| 午夜精品久久影院蜜桃| 性做久久久久久久久老女人| 日韩美女18网站久久精品| 久久这里只有精品视频99|