最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【藍橋杯學習記錄】路徑

2022-04-06 17:04 作者:長舟泛歌  | 我要投稿

一、題目

小藍的圖由 2021 個結(jié)點組成,依次編號 1 至 2021。

對于兩個不同的結(jié)點 a, b,如果 a 和 b 的差的絕對值大于 21,則兩個結(jié)點 之間沒有邊相連;如果 a 和 b 的差的絕對值小于等于 21,則兩個點之間有一條 長度為 a 和 b 的最小公倍數(shù)的無向邊相連。

例如:結(jié)點 1 和結(jié)點 23 之間沒有邊相連;結(jié)點 3 和結(jié)點 24 之間有一條無 向邊,長度為 24;結(jié)點 15 和結(jié)點 25 之間有一條無向邊,長度為 75。

請計算,結(jié)點 1 和結(jié)點 2021 之間的最短路徑長度是多少。

二、解題思路

題目中說到了最短路徑,肯定要用最短路徑,由于只需要求的1-2021之間的最短路徑就可以了,所以可以用Dijkstra算法(下稱D算法)。D算法的思路是將所有頂點分為兩個頂點集,一個叫生長點集,另一個叫非生長點集,開始生長點集只有第一個,即起始點,然后根據(jù)起始點算出起始點到其他每個點的距離,然后找到最短的路徑之后記錄這個點的坐標k,循環(huán)整個距離數(shù)組,判斷之前的距離dist[i]是否大于dist[k]+length(k,i)(即從起始點直接到i的距離是否大于從起始經(jīng)過k點到i)如果大于就dist[i]=dist[k]+length(k,i),最后將這個點加入到生長點集中同時將dist[k]置0。循環(huán)直到所有的點都加入到了生長點集。

最后當選到了2021時計算完最短距離之后輸出。

本題還需要用到最小公倍數(shù),最小公倍數(shù)可以用x*y*gcd(x,y)得到,但是由于本題只有兩點下標相差小于等于21才有距離,所以可以判斷以下兩點是否相差小于等于21,否則距離為MAX(即沒有路徑)

三、完整代碼


【藍橋杯學習記錄】路徑的評論 (共 條)

分享到微博請遵守國家法律
凤台县| 姚安县| 松江区| 竹北市| 墨玉县| 武鸣县| 普格县| 三原县| 伊吾县| 航空| 林芝县| 泗水县| 呼图壁县| 海门市| 津市市| 兴国县| 天祝| 平罗县| 修武县| 寿光市| 临汾市| 南召县| 若尔盖县| 玛多县| 长顺县| 应城市| 大邑县| 巴南区| 平原县| 静乐县| 泽州县| 威海市| 砚山县| 大冶市| 荥阳市| 当雄县| 玛纳斯县| 富锦市| 修武县| 普格县| 贡觉县|