POJ 2387(ダイクストラ)

 

POJ2387

タイトル:ヌード最短が、ほとんどがしたい、短絡nは1(なし差)にあります

なお、第1入力N T後のボードのタイトル入力

書式#include <iostreamの> 
の#include <cmath> 
の#include <cstdioを> 
する#include <CStringの> 
の#include < 文字列 > 
の#include <マップ> 
書式#include <iomanip> 
書式#include <アルゴリズム> 
書式#include <キュー> 
の#include <スタック> 
#include < セット > 
の#include <ベクトル>
 // CONST int型MAXN = 1E5 + 5。
#defineは長い長いっ
{(-1,11,11- b)はLLのGCDをリターン?B GCD(B、%の; B)} 
(-1,11,11- b)は{LLのLCM 戻り、(/ GCDを

#define MAX INT_MAXの
 に#define(I、a、b)は(;;私は= Bの<++ I私は= INT)のためFOR
 の#defineバグはcout << "------------- - "<< ENDL
 使用して 名前空間はstdを、
CONSTの INT N = 100010、M = 1000010 int型のヘッド[N]、エッジ[M]、次の[M]、D [N]版[N]、。
int型VIS [N];
INTのN、M、TOT。
PRIORITY_QUEUE <ペア< int型int型 >> QUE。
ボイド追加(int型のx、int型の Y、int型Z)
{ 
    版[ ++ TOT = Y、エッジ[TOT = Z。
    次【TOT] =頭部[X]、ヘッド[X] = TOTを、
} 
ボイドダイクストラ()
{ 
    memsetの(D、9999999はsizeof (d)参照)。
    memsetの(VIS、0はsizeof (VIS))。
    D [N] = 0 ; 
    que.push(make_pair(0 、N))。
    一方、(que.size())
    { 
        int型のx = que.top()は、第2。
        que.pop(); 
        もし(VIS [X] == 1続けます
        VIS [X] = 1 

        以下のためのint型I =ヘッド[X]; I; I = 次の[I])
        { 
            int型、Y = 版[I];
            INT Z = エッジ[I];
            もし(D [Y]> D [X] + Z)
            { 
                D [Y] = D [X] + Z。
                que.push(make_pair( - D [Y]、Y))。
            } 
        } 
    } 
} 
int型のmain()
{ 
//    freopenは( "C:\\ユーザー\\方瑞\\デスクトップ\\ INPUT.TXT"、 "R"、STDIN)。
//     freopenは( "C:\\ユーザー\\方瑞\\デスクトップ\\ output.txtと"、 "W"、STDOUT); 
    CIN >> M >> N。
    FOR(I、1、m)と
    {
        int型、B、C; 
        CIN >> A >> B >> C。
        (A、B、C)を加えます。
        (B、C)を追加します。
    } 
    ダイクストラ()。
    COUT << D [ 1 ] << ENDL。
//     (I、1、N)についての
 //     {
 //         COUT << D [i]は<< ENDL。
//     } 


}

 

おすすめ

転載: www.cnblogs.com/jrfr/p/11280102.html