zoukankan      html  css  js  c++  java
  • NYOJ 115城市平乱(Dijkstra最短路径)

     1 #include<iostream>
     2 #include<queue>
     3 #include<cstdio>
     4 #include<cstring>
     5 #define INF 1<<30
     6 #define Min(x,y) x>y?y:x
     7 using namespace std;
     8 int dist[1003],vis[1003];
     9 int map[1003][1003],city[105];
    10 int N,M,P,Q;
    11 int Dijkstra()
    12 {
    13     int i,j,mark,mindis,min_d;
    14     memset(vis,0,sizeof(vis));
    15     for(i=1; i<=M; i++)dist[i] = INF;//初始化
    16     dist[Q] = 0;    //以目的地作为起点
    17     for(i=1; i<=M; i++){
    18         mark = -1;
    19         mindis = INF;
    20         for(j=1; j<=M; j++)
    21         if( !vis[j] && dist[j] < mindis){
    22             mindis = dist[j];
    23             mark = j;
    24         }
    25         vis[mark] = 1;
    26         for(j=1; j<=M; j++)if( !vis[j] && map[mark][j])
    27         dist[j] = Min(dist[j],dist[mark] + map[mark][j]);
    28     }
    29     min_d = dist[city[1]];
    30     for(i=1; i<=N; i++)
    31        if(dist[city[i]] < min_d)min_d = dist[city[i]];
    32     return min_d;
    33 }
    34 int main()
    35 {
    36     //freopen("in.txt","r",stdin);
    37     int T,i,vi,vj,w;
    38     cin>>T;
    39     while(T--)
    40     {
    41         cin>>N>>M>>P>>Q;
    42         memset(map,0,sizeof(map));
    43         for(i=1; i<=N; i++)cin>>city[i];
    44         for(i=1; i<=P; i++){
    45             cin>>vi>>vj>>w;
    46             if(map[vi][vj])
    47                 map[vi][vj] = map[vi][vj]<w?map[vi][vj]:w;
    48             else
    49                 map[vi][vj] = map[vj][vi] = w;
    50         }
    51         cout<<Dijkstra()<<endl;
    52     }
    53     return 0;
    54 }
    55         
    View Code
  • 相关阅读:
    poj_1323 Game Prediction 贪心
    hdu_2391 Filthy Rich DP
    hdu_2570 迷障 贪心
    23种设计模式——结构型设计模式(7种)
    23种设计模式——创建型设计模式(5种)
    面向对象设计原则
    Android Studio常用配置
    [转]探索 Android 内存优化方法
    Java内存管理机制
    JNI与NDK简析(一)
  • 原文地址:https://www.cnblogs.com/qiu520/p/3232589.html
Copyright © 2011-2022 走看看