有乙個圖,其中的一些路壞了,為了從a走到b,問最少修復多長的路
3
21 2 1
2 3 2
11 2
1 3
1
2⩽n
⩽100
2\leqslant n\leqslant 100
2⩽n⩽100n−
1⩽d⩽
m⩽n∗
(n−1
)/
2n-1\leqslant d\leqslant m\leqslant n*(n-1)/2
n−1⩽d⩽
m⩽n∗
(n−1
)/21⩽x
,y⩽n
,x≠y
1\leqslant x,y\leqslant n,x\neq y
1⩽x,y⩽
n,x
=y0
n< 1000< len <100 0n<10 0把壞掉的邊的權值保留,其他邊改為0,然後直接spfa跑一遍就可以了#
include
#include
#include
#include
using
namespace std;
int n,m,k,x,y,z,h,tot,p[
150]
,b[150
],head[
150]
,pp[
150]
[150];
struct
reca[
20500];
void
spfa()
//spfa模板
} p[h]=0
;}printf
("%d"
,b[y]);
return;}
intmain()
scanf
("%d"
,&k)
;for
(int i=
1;i<=k;
++i)
spfa()
;return0;
}
1686 道路重建
時間限制 1 sec 記憶體限制 128 mb 提交 11 解決 7 提交 狀態 討論版 現在有一棵n個結點的樹 結點從1到n編號 請問至少要刪除幾條邊,才能得到乙個恰好有p個結點的子樹?第一行輸入兩個數n和p 1 n 150,1 p n 接下來輸入n 1行,每行兩個整數x y,表示x和y之間有一條...
洛谷 P3905 道路重建 spfa演算法 最短路
思路 1 開兩個vector 乙個邊的權值全部初始化為0,另乙個正常按題目邊的權值存 2 如果該路被破壞,那麼就把正常存的數值copy到要用的vector 中,即保證沒有被破壞的路的權值在計算的時候當作0來處理 3 跑spfa演算法 演算法 spfa include using namespace ...
通訊道路 spfa應用
在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站ai和bi。特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費li。公司正在舉行優惠活動。農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定...