住所 https://algospot.com/judge/problem/read/NTHLON
1つの#include <iostreamの> 2の#include <ベクトル> 3。の#include <アルゴリズム> 4。の#include <キュー> 5。 6。 7。 使用した 名前空間STD; 8 。9 int型V; 10の // ペア方式を格納する図隣接テーブル手段(接続特許頂点エッジ重み値) 11。ベクトル<ペア< INT、INT >> ADJ [ 410 ]; 12である CONST INT START = 401 ; 13である のconst int型 INF = 0x3f3f3f3f ; 14 15 16ベクター< INT >ダイクストラ(int型のSRC) 17 { 18 ベクター< INT > DIST(V、INF)。 19 [ソース] = DIST 0 。 20 PRIORITY_QUEUE <ペア< INT、INT >> PQ。 21 pq.push(make_pair(0 、SRC))。 22 23 ながら(!{pq.empty()) 24 のintコスト= - pq.top()最初。 25 INTここ= pq.top()は、第2。 26 pq.pop()。 27 28 もし(distの[ここ] <コスト)続けます。 29 30 のために(INT iは= 0 ; I <ADJ [ここ] .size()++ {I) 31 INTが= ADJ [ここ] [i]が1次回。 32 INT nextDist =コスト+ ADJ [ここ] [I] .second。 33 34 であれば(DIST [存在]> nextDist){ 35 DIST [存在] = nextDist。 36 pq.push(make_pair( - nextDist、そこ))。 37 } 38 } 39 } 40 41は 戻り、DIST 42である } 43である 44れる // ======================================= =================== 45 46 // 号頂点リターン(期待時間のかかる国-Bは、時間のかかる国の選手が期待される選手を) 47 int型の頂点(int型デルタ){ 48 リターンはデルタ+ 200である; 49 } 50 51である 。// [] =プレイヤー加工期待状態 52である // B [] B =予想加工状態プレーヤ 53は intを解決(CONSTベクトル< int型 > A&、constのベクトル< int型 >&B){ 54 // 生成图结构 55 V = 402 。 56 のために(INT iは= 0 ; I <V I ++ ADJ [I] .clear();) 57 のために(INT iは= 0を I ++; I <a.size(){) 58 のint -デルタ= [I] 、B [i]は、 59 ADJ [START] .push_back(make_pair(頂点(デルタ)、[I]))。 60 } 61 62 // 当前耗时之差 63 のための(int型デルタ= - 200 ;デルタ<= 200; ++ デルタ){ 64 // i番目のイベントの添加 65 のために(INT iが= 0 ; iが<a.size(); ++ i)が{ 66 、INT次にデルタ+ = A [i]が- B [私は]; 67 // 頂点加工200以上の差が発生する必要はありません 68 IF(ABS(次へ)> 200である)続行; 69 。ADJ [頂点(デルタ)]一back(make_pair(頂点(次)、[I ])); 70 } 71である } 72 73である ベクトル< 整数 > =最短ダイクストラ(START); 74 INTRET =最短[頂点(0 )]。 75 であれば(RET == INF)リターン - 1 。 76 リターンRET; 77 } 78 79 80 81 82 83 のint main()の 84 { 85 INT N、M。 86 CIN >> N。 87 一方(N-- ){ 88 CIN >> M。 89 ベクトル< int型 > VA; 90 ベクトル< int型 >VB; 91 のために(INT iは= 0 ; I <M、I ++ ){ 92 int型A、B。 93 CIN >> B; 94 va.push_back(A)。 95 vb.push_back(B)。 96 } 97 INT RET = (VA、VB)を解きます。 98 であれば(RET =! - 1 ){ 99 COUT << RET << ENDL。 100 } 101 他{ 102 COUT << " IMPOSSIBLE「 << ENDL; 103 } 104 } 105 106 107 戻り 0 ; 108 }