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

            Remmarguts' Date poj 2449 K短路

            Posted on 2012-04-26 22:05 lenohoo 閱讀(370) 評論(1)  編輯 收藏 引用
            Remmarguts' Date

            Description

            "Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story.

            "Prince Remmarguts lives in his kingdom UDF – United Delta of Freedom. One day their neighboring country sent them Princess Uyuw on a diplomatic mission."

            "Erenow, the princess sent Remmarguts a letter, informing him that she would come to the hall and hold commercial talks with UDF if and only if the prince go and meet her via the K-th shortest path. (in fact, Uyuw does not want to come at all)"

            Being interested in the trade development and such a lovely girl, Prince Remmarguts really became enamored. He needs you - the prime minister's help!

            DETAILS: UDF's capital consists of N stations. The hall is numbered S, while the station numbered T denotes prince' current place. M muddy directed sideways connect some of the stations. Remmarguts' path to welcome the princess might include the same station twice or more than twice, even it is the station with number S or T. Different paths with same length will be considered disparate.

            Input

            The first line contains two integer numbers N and M (1 <= N <= 1000, 0 <= M <= 100000). Stations are numbered from 1 to N. Each of the following M lines contains three integer numbers A, B and T (1 <= A, B <= N, 1 <= T <= 100). It shows that there is a directed sideway from A-th station to B-th station with time T.

            The last line consists of three integer numbers S, T and K (1 <= S, T <= N, 1 <= K <= 1000).

            Output

            A single line consisting of a single integer number: the length (time required) to welcome Princess Uyuw using the K-th shortest path. If K-th shortest path does not exist, you should output "-1" (without quotes) instead.

            Sample Input

            2 2 1 2 5 2 1 4 1 2 2 

            Sample Output

            14

            Source

            POJ Monthly,Zeyuan Zhu

            #include<cstdio>
            #include
            <cstring>
            #include
            <iostream>
            #include
            <vector>
            #include
            <queue>
            #include
            <algorithm>
            using namespace std;
            #define re(i,n) for(int i=0;i<n;i++)
            #define re2(i,n) for(int i=1;i<=n;i++)
            #define pb push_back
            const int MAXN = 1001;
            const int inf = 999999999;
            struct nod{
                
            int x,val;
            };
            struct cmp{
                
            bool operator()(nod a,nod b){
                    
            return a.val>b.val;
                }
            };
            int N,M,S,T,K,dist[MAXN],out[MAXN];
            vector
            <nod> g[MAXN],r[MAXN];
            priority_queue
            <nod,vector<nod>,cmp> Q;
            void dijkstra(){
                
            bool vi[MAXN];
                re2(i,N) vi[i]
            =0,dist[i]=inf;
                dist[T]
            =0;
                
            while(1){
                    
            int k=-1;
                    re2(i,N) 
            if(!vi[i] && (k==-1 || dist[i]<dist[k])) k=i;
                    
            if(k==-1break;
                    vi[k]
            =1;
                    re(i,r[k].size()){
                        nod u
            =r[k][i];
                        
            if(!vi[u.x] && dist[u.x]>dist[k]+u.val) dist[u.x]=dist[k]+u.val;
                    }
                }
            }
            int astar(){
                dijkstra();
                nod v;
                v.x
            =S,v.val=dist[S];
                Q.push(v);
                re2(i,N) 
            out[i]=0;
                
            while(!Q.empty() && out[T]<K){
                    v
            =Q.top();Q.pop();
                    
            if(out[v.x]>=K) continue;
                    
            if(v.x==T){
                        
            out[v.x]++;
                        
            if(out[v.x]==K) return v.val;
                    }
                    re(i,g[v.x].size()){
                        nod u
            =g[v.x][i];
                        
            if(out[u.x]>=K) continue;
                        u.val
            =v.val-dist[v.x]+u.val+dist[u.x];
                        Q.push(u);
                    }
                }
                
            return -1;
            }
            int main(){
                
            while(cin>>N>>M){
                    
            int a,b,w;
                    re2(i,N) g[i].clear(),r[i].clear();
                    re(i,M){
                        cin
            >>a>>b>>w;
                        nod tmp;
                        tmp.x
            =b,tmp.val=w;
                        g[a].pb(tmp);
                        tmp.x
            =a;
                        r[b].pb(tmp);
                    }
                    cin
            >>S>>T>>K;
                    
            if(S==T) K++;
                    
            int ans=astar();
                    cout
            <<ans<<endl;
                }
                
            return 0;
            }

            Feedback

            # re: Remmarguts' Date poj 2449 K短路  回復  更多評論   

            2012-04-27 07:06 by lenohoo
            注意s==t的時候要k++啊

            posts - 3, comments - 1, trackbacks - 0, articles - 16

            Copyright © lenohoo

            亚洲国产精品18久久久久久| 亚洲欧洲日产国码无码久久99| 精品国产VA久久久久久久冰| 精品久久久久久中文字幕| 精品国产青草久久久久福利 | 丁香色欲久久久久久综合网| 狠狠狠色丁香婷婷综合久久五月| 伊人色综合久久| 91精品国产91久久久久福利| 久久精品国产色蜜蜜麻豆| 99久久婷婷国产一区二区| 亚洲精品成人网久久久久久| 99久久精品这里只有精品| 欧美精品丝袜久久久中文字幕 | 97久久综合精品久久久综合| 久久久久国产精品麻豆AR影院 | 久久99国产乱子伦精品免费| 久久电影网| 久久国产乱子精品免费女| 久久这里的只有是精品23| 久久久久国产精品三级网 | 久久精品国产亚洲av瑜伽| 久久久久人妻一区二区三区vr| 区久久AAA片69亚洲| 久久精品国产乱子伦| 国产精品成人久久久久三级午夜电影 | 日本久久中文字幕| 国产精品中文久久久久久久| 国产女人aaa级久久久级| 精品久久久久久国产91| av无码久久久久不卡免费网站| 一本色道久久88精品综合| 久久综合偷偷噜噜噜色| 亚洲人成网站999久久久综合| 久久综合日本熟妇| 综合网日日天干夜夜久久| 99久久久精品免费观看国产| 欧洲人妻丰满av无码久久不卡| 久久精品蜜芽亚洲国产AV| 久久综合给合久久狠狠狠97色| 人人狠狠综合久久88成人|