• <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>

            coreBugZJ

            此 blog 已棄。

            EOJ 1028 路由器

              1/*
              2EOJ 1028 路由器
              3
              4
              5----問題描述:
              6
              7路由器是網(wǎng)絡(luò)中用來轉(zhuǎn)發(fā)IP報文的一種設(shè)備。
              8
              9當(dāng)路由器收到一個終端或者其它路由器發(fā)過來的報文時,它必須選項擇最快的一條通信線路通向報文所指向的目標(biāo)機(jī)器(目標(biāo)機(jī)器可能是一個終端,也可能是另一個路由器)。眾所周知,在兩個路由器之間可能有多條通信線路,你的任務(wù)就是給出兩個路由器之間最短通信時間。
             10每一個路由器都有一個IP來標(biāo)識它自己,這個標(biāo)識是唯一的。任意兩點之間的通信時間單位是毫秒。每條通信線路都是全雙工的(雙向的)。 
             11
             12
             13----輸入:
             14
             15第一行為兩個整數(shù)n和m,n表示有多少個路由器,m表示有多少條通信線路。(2<=n<=100,1<=m<=1000)
             16接下去的m行用來描述路由器之間的線路。每行包括三個元素,兩個路由器的IP地址和它們之間通信所花費(fèi)的時間。
             17然后一行是一個整數(shù)t,表示有多少個報文。(1<=t<=1000)
             18接下去的t行是報文。每個報文占一行,為了簡化問題,我們在每行中給出兩個IP地址,分別是目標(biāo)地址和源地址。你要做的就是求出兩者之間的最短時間。 
             19
             20
             21----輸出:
             22
             23對于每個報文,輸出一行。每行只包含一個整數(shù),表示報文給的兩個IP地址之間的最短通信時間。如果不存在這樣的通路,或者IP地址并不存在,則輸出-1。 
             24
             25
             26----樣例輸入:
             27
             284 5
             29168.120.1.1 168.120.1.2 15
             30168.120.1.1 168.120.1.4 47
             31168.120.1.1 168.120.1.3 10
             32168.120.1.2 168.120.1.4 15
             33168.120.1.3 168.120.1.4 25
             343
             35168.120.1.1 168.120.1.4
             36168.120.1.3 168.120.1.4
             37168.120.1.3 202.12.12.12
             38
             39
             40----樣例輸出:
             41
             4230
             4325
             44-1 
             45
             46
             47----分析:
             48
             49
             50*/

             51
             52
             53#include <stdio.h>
             54#include <string.h>
             55
             56#define  N  102
             57#define  OO 1023456789
             58// OO + OO !!!!
             59
             60#define  IPL  20
             61int maxId;
             62char ipStr[N][IPL];
             63
             64int IpToId( const char * ip ){
             65        int i;
             66        for( i=1; i<=maxId; ++i ){
             67                if( strcmp( ip, ipStr[i] ) == 0 ){
             68                        return i;
             69                }

             70        }

             71        return 0;
             72}

             73
             74int main(){
             75        int w[N][N], i, j, k, n, m;
             76        char ip[IPL];
             77        scanf( "%d%d"&n, &m );
             78        maxId = 0;
             79        for( i=1; i<=n; ++i ){
             80                for( j=1; j<=n; ++j ){
             81                        w[i][j] = OO;
             82                }

             83        }

             84
             85        while( m-- ){
             86                scanf( "%s", ip );
             87                if( ( i = IpToId( ip ) ) == 0 ){
             88                        i = ++maxId;
             89                        strcpy( ipStr[maxId], ip );
             90                }

             91                scanf( "%s", ip );
             92                if( ( j = IpToId( ip ) ) == 0 ){
             93                        j = ++maxId;
             94                        strcpy( ipStr[maxId], ip );
             95                }

             96                scanf( "%d"&k );
             97                if( k < w[i][j] )/////////////////////////////
             98                        w[i][j] = w[j][i] = k;
             99                }

            100        }

            101
            102        for( k=1; k<=n; ++k ){
            103                for( i=1; i<=n; ++i ){
            104                        for( j=1; j<=n; ++j ){
            105                                if( (k!=j) && (k!=i) && (i!=j) ){
            106                                        if( w[i][j] > w[i][k] + w[k][j] ){
            107                                                w[i][j] = w[i][k] + w[k][j];
            108                                        }

            109                                }

            110                        }

            111                }

            112                w[k][k] = 0;
            113        }

            114
            115        scanf( "%d"&m );
            116        while( m-- ){
            117                scanf( "%s", ip );
            118                i = IpToId( ip );
            119                scanf( "%s", ip );
            120                j = IpToId( ip );
            121                printf( "%d\n", (i==0)||(j==0)||(w[i][j]==OO) ? -1 : w[i][j] );
            122        }

            123        return 0;
            124}

            125

            posted on 2012-05-14 16:08 coreBugZJ 閱讀(675) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithm 、課內(nèi)作業(yè)

            久久无码人妻一区二区三区| 久久精品国产亚洲AV无码娇色 | 国产精品免费久久久久电影网| 久久午夜电影网| 日韩人妻无码一区二区三区久久99 | 久久99免费视频| 久久青青草视频| 久久免费美女视频| 久久久久高潮综合影院| 色综合久久88色综合天天| 伊人色综合久久天天人手人婷 | 亚洲综合久久夜AV | 久久99国产精品久久99| 免费无码国产欧美久久18| 99久久亚洲综合精品网站| 久久久久无码精品国产| 久久精品国产男包| 久久人人爽人人爽AV片| 93精91精品国产综合久久香蕉 | 精品久久久久久无码人妻热 | 久久天堂电影网| 久久久久99精品成人片直播| 狠狠色丁香久久婷婷综合蜜芽五月| 99久久国产亚洲高清观看2024| 久久香蕉国产线看观看精品yw| 欧美黑人激情性久久| 国内精品人妻无码久久久影院导航| 精品无码久久久久久久动漫| 99久久国产综合精品网成人影院| 无码国产69精品久久久久网站| 中文字幕乱码人妻无码久久| 一级A毛片免费观看久久精品| 久久人人爽人人爽AV片| 久久亚洲欧洲国产综合| 一本色道久久综合狠狠躁篇| 免费精品久久天干天干| 亚洲欧美成人综合久久久| 久久亚洲私人国产精品vA| 国产成人精品白浆久久69| 狠狠色丁香婷婷综合久久来| 91精品观看91久久久久久|