題目描述
話說數年一度的武林盛事「華山論劍」將至,東邪、西毒、南帝、北丐,老頑童等高手雲集華山之巔,誓要分出究竟誰是武林至尊……
如此武林盛世,當然求圍觀。據統計,有n-1位同學想去華山看熱鬧,他們分別住在編號為1-n(除華山所在地x)的地方,華山編號為x(1<=x<=n)。現在有m(1<=m<=100000)條有向道路,每條路長為ti(1<=ti<=100)。
由於每位同學看完打架後還要回家吃飯,所以要選擇最短路徑,求這n-1位同學的最短路徑(乙個來回)中最長的一條的長度。
資料保證每位同學均能到達華山處,並從華山返回。
輸入第1行: n,m,x;
第2~m+1行: ai,bi,ti,表示有一條從ai到bi的路,長度為ti.
輸出輸出僅一行,為最長最短路的長度。
樣例輸入
4 8 21 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3
樣例輸出
10
提示對於60%的資料,滿足 1<=n<=100
對於100%的資料,滿足 1<=n<=1000。
分析:並不難的最短路。
分別正反向建邊,然後正反跑兩次最短路,再求兩次最短路之和的最大值就行了。
code:
//it is made by holselee on 17th aug 2018
//華山論劍
#include#define max(a,b) (a)>(b)?(a):(b)
using
namespace
std;
const
int n=1001
;const
int m=1e5+7
;int
n,m,tag,h1[n],h2[n],cnt1,cnt2,dis1[n],dis2[n],ans;
bool
vis[n];
struct
nodee1[m],e2[m];
queue
t;inline
intread()
while(ch>='
0'&&ch<='9')
return flag?-num:num;
}inline
void add1(int x,int y,int
z)inline
void add2(int x,int y,int
z)void
spfa1()}}
}void
spfa2()}}
}int
main()
spfa1();spfa2();
for(int i=1;i<=n;++i)
printf(
"%d\n
",ans);
return0;
}
NYOJ 華山論劍
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 有n個劍客 編號1 n 相約華山比劍,分 m 次決鬥,為了節省時間,每次決鬥 編號在 l r 的劍客一起決鬥,然後xi獲勝。當進行下一次決鬥,失敗後的劍客可能再參與到決鬥,m 次決鬥後可能不止一位獲勝者 沒有失敗過就視為獲勝者 ...
輸出長劍 華山論劍
description劍,古代兵器之一,屬於 短兵 乃是兵中王者,被稱為 百兵之王 古王皆有君子之氣,亦有皇上君臨天下之說,素有 百兵之君 的美稱。古代的劍由金屬製成,長條形,有著筆直的劍身和尖銳的劍尖,後端有短柄,現在,我們想要用字串畫出劍的形狀,短柄由數字 0 組成,劍身由大寫字母i組成,比如 ...
國內SNS市場「華山論劍」
話說,2008年,是sns時代!果真,康勝大哥就推出了uchome sns產品。不止將國內老一代bbs元老動網bbs和windphp bbs遠遠拋在腦後,而且也給國內的為數不多的sns開源服務商給了乙個很大的下馬威啊!於是呢,國內的老二,老三bbs服務商忙著搞點什麼 戰略合作聯盟 其實是啥聯盟啊,有...