p1119災後重建
好像洛谷的題解都在強調floyd的含義 不能只是背到floyd然後就用 還要理解floyd的含義
f[i][j]:從i號頂點到j號頂點只經過前k號點的最短路程
然後還得有個優化 如果該點作為中轉點計算過 那麼就不用再走一遍
比較良心的是出題人是大小有順序地輸入
不加那個走過的判斷 qaq我還寫錯了乙個地方
最終
1 #include2100昏 floydusing
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 }
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 對於每個詢問你要回...