ZCMU 1398工程 弗洛伊德法求最短路徑

2021-08-21 18:32:12 字數 1174 閱讀 5861

time limit: 1 sec  memory limit: 128 mb

submit: 198  solved: 109

[submit][status][web board]

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

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

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

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

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

3 3

0 1 1

0 2 3

1 2 1

0 2

3 1

0 1 1

1 22

-1【解析】

直接套模板了,最樸素的最短路徑求法。

#include using namespace std;

int graph[210][210], n, m;

int d[210][210], p[210][210];//d為點i到j的最短路徑權重,p為i到j點最短路徑的前驅

void floyd()

for (k = 0; k < n; k++)

for (v = 0; v < n; v++)

for (w = 0; w < n; w++)

if (d[v][w] > d[v][k] + d[k][w])

//int ans = 0, min = 0x3f3f3f3f;

/*for (v = 0; v < n; v++)

printf(" -> %d\n", w);

} printf("\n");

}*/}int main()

scanf("%d%d", &s, &t);

floyd();

if (s == t)printf("0\n");

else if (d[s][t] !=0x3f3f3f3f)printf("%d\n", d[s][t]);

else printf("-1\n");

} return 0;

}

kali攻擊139埠 簡易入侵139埠

提到139埠,我想知道的人一定非常多,本來是不想用寫這個教程的,但考慮要照顧到新人,所以還是簡單的寫一下。首先,連線的命令是 netuse ip位址 ipc content lt 空格 密碼 user 使用者名稱 net use 192.168.1.11 ipc content nbsp 12345...

139 單詞拆分

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典中出現的單詞。說明 示例 1 輸入 s leetcode worddict leet code 輸出 true解釋 返回 true 因為 leetcode 可以被拆分成 leet co...

139 單詞拆分

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典 現的單詞。說明 示例 1 輸入 s leetcode worddict leet code 輸出 true 解釋 返回 true 因為 leetcode 可以被拆分成 leet co...