GDUT 寒假訓練題解報告 專題II

2021-10-02 05:00:56 字數 1472 閱讀 5336

題目:

省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。

現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。

input

本題目包含多組資料,請處理到檔案結束。

每組資料第一行包含兩個正整數n和m(0output

對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從s到t的路線,就輸出-1.

sample input

3 3

0 1 1

0 2 3

1 2 1

0 23 1

0 1 1

1 2

sample output

2

-1

審完題目,發現是乙個板子floyd,直接上手板子,但是要注意乙個問題:這**題目會給一些鬼畜資料:同樣的兩個頂點,給出的距離是更小的,那麼輸入就是要有這樣的一句話:

edge[from]

[to]

=min

(edge[from]

[to]

,value)

;

極其狗的資料,然後就是板子floyd沒了,資料是點集大小小於200,不要開100

完整**:

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define ull unsigned long long

#define ll long long

using namespace std;

int edge[

205]

[205];

int n,m;

intmain()

for(

int time=

0;time)int s,f;

scanf

("%d %d"

,&s,

&f);

for(

int time=

0;time}/*for(int time=0;timeif

( edge[s]

[f]==inf )

printf

("-1\n");

else

printf

("%d\n"

,edge[s]

[f]);}

return0;

}

2014寒假專題訓練題解

分治 分治法是自己一直以來不太熟悉也不重視的演算法,所以這次的題目做得也不好。第二題roots,求一元三次方程的根 保留4位小數 因為 二分法求方程的根 已經由數學老師在數學課上比較詳細地講解過,所以第乙個想到的就是這個方法。後來同學說如果結果保留的小數字少一些比如只保留兩位小數時可以乘以100之後...

2019 GDUT 新生專題I選集 I

題目 hysbz 1734 aggressive cows 憤怒的牛 題目描述 在給出的單增數列裡找到固定數目的不連續子數列,使各項間的最小差值盡可能的大。題目分析 本來是想對各位進行平均分的,但這個數列不一定為等差的,不實際。後來了解到可以對答案進行二分。順便總結兩條用二分的條件1.單調的2.連續...

2021 GDUT 新生專題訓練

資料結構是利器,可以靈活運用,解決各種複雜的問題。具體內容太多不必列舉,關鍵還是思維。分析一道經典的例題 維護數列 傳送門 題目大意 給出乙個序列,要求支援插入 刪除 修改 翻轉 求和 求最大子列和。輸入運算元n 0 n 5e5 運算元量m 1 m 2e4 時間限制 1s,空間限制 128m 看我四...