luogu1119 災後重建 floyd

2022-05-16 02:16:32 字數 986 閱讀 9149

p1119災後重建

好像洛谷的題解都在強調floyd的含義 不能只是背到floyd然後就用  還要理解floyd的含義

f[i][j]:從i號頂點到j號頂點只經過前k號點的最短路程

然後還得有個優化 如果該點作為中轉點計算過 那麼就不用再走一遍

比較良心的是出題人是大小有順序地輸入

不加那個走過的判斷 qaq我還寫錯了乙個地方

最終

1 #include2

using

namespace

std;

3#define rg register

4const

int n=200+5,inf=0x3f3f3f3f;5

intn,m,q,s,e,t,a[n],f[n][n];

6bool

u[n];

7 inline int

rd()814

15void floyd(int

k)16

2223

intmain()

2433 q=rd();

34while(q--)

3539

while(a[now]<=t&&now

4045

if(f[s][e]!=inf) printf("

%d\n

",f[s][e]);

46else printf("

-1\n");

47}48return0;

49 }

100昏 floyd

P1119 災後重建

原題鏈結 一開始直接想跑最短路 看了看詢問次數 放棄了 然後果斷看了題解 floyd 用啥都不會用它的好嗎 平常的最劣選擇 但是 它就是正解 floyd的原理 就是列舉中點 這裡 因為出題人 已經把詢問排好了序 只需要判斷中點 有沒有重建完成 把它加入圖中 include include inclu...

洛古1119 災後重建

題目背景 b地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。題目描述 給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度...

災後重建 洛谷1119

題意 給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度,公路是雙向的。並給出第i個村莊重建完成的時間t i 你可以認為是同時開始重建並在第t i 天重建完成,並且在當天即可通車。若t i 為0則說明 未對此地區造成損壞,一開始就可以通車。之後有q個詢問 x,y,t 對於每個詢問你要回...