タイトル説明
サーバーの抵抗力を高めるために、多くの大規模なトラフィックの多いサイトは、複数のサーバを設定し、最短ルート1サーバを見つけるためにインターネットでルーティングしています。UOIは今フィルムが示された、彼はコンピュータをたくさん持って望んでいる、ダウンロード可能なサーバがたくさんあります。UOIネットワークは、あなたのマップを与えるあなたは少しの間の線の長さを伝え、どのくらい長く最短ライン、および台湾は、選択したコンピュータとサーバの選択数をダウンロードするために使用されることを尋ねます。複数のコンピュータ/サーバ間の場合は、最短接続線、最も小さい番号の出力コンピュータであり、最も小さい番号の出力サーバの幅広い選択がある場合。
入力形式
最初のラインN、M、nはグリッドとの合計点を示し、ネットワーク接続部Mのm行次に、ネットワーク接続は、接続されたA、B、点と線のそれぞれの長さを表します。そして、T1の数は、どのように多くのコンピュータUOIを表明しました。次のラインT1の数は、各コンピュータUOIの数を示します。そして、T2の数は、どのように多くのサーバを示します。T2の次の行番号、IDは、各サーバーを表します。
出力フォーマット
三個のすなわち数字、ラインの長さは、コンピュータUOIダウンロードして、ダウンロード元のシートを提供します
-------------------------------------------------- -------------------------------------------------- ---------------------
変換質問が意図されて:あなたは、ソースとシンクを接続する経路を求めて、ソースとシンクのいくつかの数を、与えることと、このパスの長さを最小限に抑えること。
使用n回はTLE明らかspfa。スーパーソース:今回はコンセプトを紹介したいと思います。これは、すべてのソース点を接続することができ、夜12時00分の数の導入を意味し、原画像、即ち、ゼロの長さに影響を及ぼしません。だから、spfaの十分一度実行します。この質問は、出力ソースおよびシンクを必要とし、私たちは事前に配列を開いて、各点は、前駆体(前駆体はあなたがそこに着くことができ、そこからソースを参照)を記録することができます。
少しのコードでは、自分のアイデアに沿って、少し修正を行います。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 キュー < 整数 > Q; 構造体ノード { INT DIS、であり; }。 ベクター <ノード> V [ 100005 ]。 整数 N、M、T1、T2、[ 100005 ]、VIS [ 100005 ]、プリ[ 100005 ]。 長い 長い ANS = 9223372036854775807、DIS [ 100005 ]。 int型ANS1、ANS2。 INT メイン() { memsetの(DIS、0x3fを、はsizeof (DIS))。 のscanf("%D%D "、&N、&M)。 用(INT iは= 1 ; I <= M I ++ ) { int型、U、D、に; scanf関数(" %D%D%D "、&U、&に、&D)。 V [U] .push_back((ノード){D、へ})。 V [する] .push_back((ノード){U、D})。 } のscanf(" %dの"、&T1)。 以下のために(INT iが= 1 ; I <= T1; I ++)のscanf(" %dの"、および[I])。、A + T1 + )。 scanf関数(" %のD "、&T2)。 int型T; 以下のために(INT iが= 1 ; I <= T2; I ++)のscanf(" %dの"、&T)、予め[T] = T、VIS [T] = 1、DIS [T] = 0 、q.push(T ); 一方、(!q.empty()) { int型今= q.front(); q.pop(); VIS [今] = 0 ; 用(INT iは= 0 ; I <V [今] .size()は、i ++ ) { int型へ= V [今] [I] .TO。 もしA + T1 + 1 (DIS DIS [今] +>に]V [今] [I] .DIS) { [する]事前 = 事前[今]。 【へ】DIS = DIS [今] + V [今] [I] .DIS。 もし(VIS [へ]!)VIS = [へ] 1 、q.push(へ); } } } のために(INT iは= 1 ; I <= T1; I ++ ) 場合(ANS> DIS [I])ANS = DIS [I]、ANS1 = A [i]は、 printf(" %LD%D%D " 、ANS、ANS1、予め[ANS1])。 リターン 0 ; }