jzoj 1001 最難的問題

2021-08-21 10:43:40 字數 1459 閱讀 5171

description

這是乙個很難的問題,你要找出「12345678987654321!」答案裡一共含有多少個「0」,「!」表示階乘的意思。

其實,我是在開玩笑的,地球上沒有人真正能成功的解決這個問題。

實際上,我是乙個間諜,我從敵人手中偷取了一些很重要的秘密,我只想以盡量少的時間離開敵人的基地。

敵人的基地地圖可以用一張網路圖表示,交叉路口可表示為結點,通路可表示為邊,我需要從基地總部逃出到撤離點。到底怎樣走才最快呢?幸好我有一台超強的掌上電腦,請盡快幫我解決這個問題!

input

資料第一行是兩個整數n和m,(1<=n<=200,0<=m<=10000),分別表示交叉路口數量與通路數量。接下來m行每行有三個整數i,j,k(i!=j,1<=k<=10000),表示有一條長度為k的無向通路連線路口i與路口j。注意路口i與路口j間可能有多條不同長度的通路。

你可以假定交叉路口是用1到n的整數來標識的,編號1是基地總部,編號n是撤離

output

輸出只有乙個整數,為最短的逃離距離,如果不可能逃出,則輸出「-1」。

solutions

練個手而已,見**

**

var

n,m:longint;

a:array [0..201,0..201] of longint;

function

min(o,p:longint):longint;

begin

if othen

exit(o);

exit(p);

end;

procedure

init;

var i,x,y,z:longint;

begin

fillchar(a,sizeof(a),63);

readln(n,m);

for i:=1

to m do

begin

readln(x,y,z);

a[x,y]:=min(a[x,y],z);

a[y,x]:=min(a[y,x],z);

end;

for i:=1

to n do

a[i,i]:=0;

end;

procedure

floyd;

var i,j,k:longint;

begin

for k:=1

to n do

for i:=1

to n do

for j:=1

to n do

a[i,j]:=min(a[i,j],a[i,k]+a[k,j]);

end;

begin

init;

floyd;

if a[1,n]=a[0,0] then writeln('-1')

else writeln(a[1,n]);

end.

面試中最難回答的問題

1.介紹你自己 這個問題通常是乙個面試的開始的第乙個問題,要額外的小心不要滔滔不絕。盡可能的讓你的回答在一分鐘,最多2分鐘的時間內結束。你的回答應該包含以下4個,主題 早期生活,教育背景,工作背景以及最近的工作經驗。要著重強調最後的那個主題。要牢記這個問題通常是乙個熱身的問題,不要把你的最重要的觀點...

競價推廣過程中最難的問題是什麼?

切記不以轉化為目的營銷推廣都是耍流氓!經常有人說,競價推廣就要搶排名 搶流量。但搶來的流量是沒有轉化效果的又有何意義?在競價中直接影響推廣效果的核心問題就是 流量的精準度,可以說流量既是推廣的核心也是推廣的特性。因此,這就需要企業在開始推廣之前賬戶的搭建過程中做好流量的布局,明確哪些流量能要,哪些流...

面試時最難的25個問題 真的太實際了

size large 各位朋友,這篇文章不是什麼萬靈丹,不能適合所有的人。對我個人來講它一無是處,只有當自己擁有勝任某項工作的能力的時候,這些東西將成為乙個形式的東西。因為換位思考下,我們大家都會知道尋找乙個合理價位的人才對企業來說不是件難事。簡介 工作面試時最難的25個問題,很好的準備是成功的一半...