1. hdu 2112 HDU Today

        共 2793字,需瀏覽 6分鐘

         ·

        2021-09-22 09:30

        HDU Today

        Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
        Total Submission(s): 51562    Accepted Submission(s): 12238


        Problem Description

        經(jīng)過錦囊相助,海東集團終于度過了危機,從此,HDU的發(fā)展就一直順風順水,到了2050年,集團已經(jīng)相當規(guī)模了,據(jù)說進入了錢江肉絲經(jīng)濟開發(fā)區(qū)500強。這時候,XHD夫婦也退居了二線,并在風景秀美的諸暨市浬浦鎮(zhèn)陶姚村買了個房子,開始安度晚年了。
        這樣住了一段時間,徐總對當?shù)氐慕煌ㄟ€是不太了解。有時很郁悶,想去一個地方又不知道應該乘什么公交車,在什么地方轉(zhuǎn)車,在什么地方下車(其實徐總自己有車,卻一定要與民同樂,這就是徐總的性格)。
        徐總經(jīng)常會問蹩腳的英文問路:“Can you help me?”??粗敲悦6譄o助的眼神,熱心的你能幫幫他嗎?
        請幫助他用最短的時間到達目的地(假設每一路公交車都只在起點站和終點站停,而且隨時都會開)。

         


        Input

        輸入數(shù)據(jù)有多組,每組的第一行是公交車的總數(shù)N(0<=N<=10000);
        第二行有徐總的所在地start,他的目的地end;
        接著有n行,每行有站名s,站名e,以及從s到e的時間整數(shù)t(0<t<100)(每個地名是一個長度不超過30的字符串)。
        note:一組數(shù)據(jù)中地名數(shù)不會超過150個。
        如果N==-1,表示輸入結(jié)束。

         


        Output

        如果徐總能到達目的地,輸出最短的時間;否則,輸出“-1”。

         


        Sample Input

        6
        xiasha westlake
        xiasha station 60
        xiasha ShoppingCenterofHangZhou 30
        station westlake 20
        ShoppingCenterofHangZhou supermarket 10
        xiasha supermarket 50
        supermarket westlake 10
        -1

         


        Sample Output

        50


        Hint:
        The best route is:
        xiasha->ShoppingCenterofHangZhou->supermarket->westlake



        代碼:

        #include<stdio.h> 
        #include<iostream>
        #include<map>
        #include<queue>
        using namespace std;
        #define INF 99999999
        int Map[155][155],n,node[155];
        void init()
        {
        for(int i=0;i<=150;i++)
        for(int j=i;j<=150;j++)
        Map[i][j]=Map[j][i]=node[i]=INF;
        }

        void spfa(int star)
        {
        int inQ[155]={0};
        queue<int>Q;
        inQ[star]=1; Q.push(star);
        node[star]=0;
        while(!Q.empty())
        {
        star=Q.front();
        Q.pop();
        inQ[star]=0;
        for(int i=1;i<=n;i++)
        if(Map[star][i]+node[star]<node[i])
        {
        node[i]=Map[star][i]+node[star];
        if(!inQ[i])
        Q.push(i),inQ[i]=1;
        }
        }
        }

        int main()
        {
        int star,end,m,a,b,p;
        char aa[35],bb[35];
        map<string,int>loc;
        while(scanf("%d",&m)>0&&m!=-1)
        {
        init(); n=1; loc.clear();
        scanf("%s%s",aa,bb);
        loc[aa]=n; star=n;
        if(!loc[bb]){n++;loc[bb]=n;}
        end=loc[bb];
        while(m--)
        {
        scanf("%s%s%d",aa,bb,&p);
        if(!loc[aa])
        {
        n++;
        loc[aa]=n;
        }
        a=loc[aa];
        if(!loc[bb])
        {
        n++;
        loc[bb]=n;
        }
        b=loc[bb];
        if(Map[a][b]>p)
        Map[a][b]=Map[b][a]=p;
        }
        if(star==end)
        {
        printf("0\n");
        continue;
        }
        spfa(star);
        if(node[end]==INF)
        node[end]=-1;
        printf("%d\n",node[end]);
        }
        }


        瀏覽 50
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 欧美极品jiizzhd欧美24 | 91久久精品视频 | 在线播放国产视频 | 国产精品无码午夜福利免费看 | 国产探花精品视频 |