原題鏈結
一開始直接想跑最短路
看了看詢問次數
放棄了
然後果斷看了題解
floyd
用啥都不會用它的好嗎
平常的最劣選擇
但是 它就是正解
floyd的原理
就是列舉中點
這裡 因為出題人
已經把詢問排好了序
只需要判斷中點
有沒有重建完成
把它加入圖中
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct maki
que[50005];
int dis[205][205],i,j,k,p,n,m,ti[205],x,y,t,a,b,w,vis[205],q;
int main()
scanf("%d",&q);
for(i=1;i<=q;i++)
for(p=1;p<=q;p++)
for(k=0;kif((ti[k]<=que[p].tim)&&(!vis[k]))
if(dis[x][y]>=1e6) printf("-1\n");
else
printf("%d\n",dis[x][y]);
}return
0;}
P1119 災後重建
我覺得這個題出的很好,讓我對floyd 演算法有了乙個更深的理解。floyd 是乙個求多源最短路徑的演算法,演算法的內容很簡單。這個演算法的主要思路,就是通過其他的點進行中轉來求的兩點之間的最短路。因為我們知道,兩點之間有多條路,如果換一條路可以縮短距離的話,就更新最短距離。而它最本質的思想,就是用...
P1119 災後重建
b地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。給出b地區的村莊數n,村莊編號從0到n 1,和所有m條公路的長度,公路是雙向的。並給...
P1119 災後重建
b 地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公路造成什麼影響。但是在村莊重建好之前,所有與未重建完成的村莊的公路均無法通車。換句話說,只有連線著兩個重建完成的村莊的公路才能通車,只能到達重建完成的村莊。給出 b 地區的村莊數 n 村莊編號從 0 到 n 1 和所有 m 條公路的長度,...