HDU2544最短路

原创 2015年07月10日 14:36:57
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
import java.util.StringTokenizer;

import javax.management.Query;


public class Main {

        public static void main(String[] args) {
                InputReader in = new InputReader(System.in) ;
                PrintWriter out = new PrintWriter(System.out);

                int n , m  ;
                while((n = in.nextInt()) != 0 && (m = in.nextInt()) != 0){
                       new Task().solve(n, m, in, out) ;
                }

                out.flush() ;
        }

}

class Task{

      static  class E{
              int v ;
              int w ;
              public E(int v , int w){
                     this.v = v ;
                     this.w = w ;
              }
      }

      ArrayList<E>[] adj ;
      int[] dist ;
      boolean[] inq ;


      void solve(int n , int m , InputReader in , PrintWriter out){
           adj = new ArrayList[n+1] ;  
           for(int i = 1 ; i <= n ; i++) adj[i] = new ArrayList<E>();

           for(int i = 0 ; i < m ; i++){
                 int u = in.nextInt() ;
                 int v = in.nextInt() ;
                 int w = in.nextInt() ;
                 adj[u].add(new E(v, w)) ;
                 adj[v].add(new E(u, w)) ;
           }
           dist = new int[n+1] ;
           Arrays.fill(dist, Integer.MAX_VALUE) ;
           inq = new boolean[n+1] ;
           Arrays.fill(inq, false) ;
           dist[1] = 0 ;
           inq[1] = true ;
           Queue<Integer> que = new LinkedList<Integer>() ;
           que.add(1) ;
           while(! que.isEmpty()){
                int u = que.poll() ;
                inq[u] = false ;
                for(E e : adj[u]){
                      if(dist[u] + e.w < dist[e.v]){
                            dist[e.v] = dist[u] + e.w ;
                            if(! inq[e.v]){
                                 inq[e.v] = true ;
                                 que.add(e.v) ;
                            }
                      }
                }
           }

           out.println(dist[n]) ;
      }
} 

class InputReader{
    public BufferedReader reader;
    public StringTokenizer tokenizer;

    public InputReader(InputStream stream){
           reader = new BufferedReader(new InputStreamReader(stream), 32768);
           tokenizer = null;
    }

    public String next(){
        while(tokenizer == null || !tokenizer.hasMoreTokens()){
            try{
                tokenizer = new StringTokenizer(reader.readLine());
            }catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }

    public int nextInt() {
        return Integer.parseInt(next());
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU2544(最短路)

题目: Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所...
  • LMFQYJ
  • LMFQYJ
  • 2016年07月04日 17:04
  • 202

最短路 HDU - 2544 (迪杰斯特拉)

最短路  HDU - 2544  在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想...

HDU 2544 (带权值的最短路 13.11.16)

Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想...

hdu oj 2544 最短路(最短路径)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

HDU 2544最短路(Dijkstra算法+Floyd算法)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis...

hdu2544 最短路 (floyd)

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

HDU 2544最短路dijkstra模板题

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

hdu 2544 最短路 spfa 解题报告

Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他...

複習最短路 hdu 2544

全裸的最短路:最快的是dijkstra(老爺爺長得)

HDU2544最短路(DFS/Dijkstra+heap)

题意:求权值最小的路,题目保证一定有解。 思路:经典的最短路问题,floyd、Dijkstra或者DFS都可以。 //#include #include #include #include #incl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU2544最短路
举报原因:
原因补充:

(最多只允许输入30个字)