D BFS Trees bfs 列舉計數

2021-10-22 06:02:37 字數 1334 閱讀 5369

題意:

給定一張n個點m條邊的聯通無權圖,要求輸出對於任意的i,j,在原圖中有多少棵生成樹,使得i,j到生成樹上的任意一點的距離等於i,j在原圖上到達他們的距離。

1 ≤n

≤400,1

≤m

≤600

1≤n≤400,1≤m≤600

1≤n≤40

0,1≤

m≤60

0 分析:首先我們預處理出所有點的最短路。然後我們考慮將乙個點x加入到最小生成樹,那連那條邊呢?能連的點的距離一定是x與i的距離減一,x與j的距離減一,這樣連上去才能保證i,j到x的距離為最短距離。

還有一種點,他們在i,j的路徑上,這時候的距離要求又不相同,所以我們直接找到i到j的一條路徑,直接從i開始搜尋,找到乙個點,這個點離j更近了一步,離i更遠了一步,這樣就把這條路徑處理出來了,其他的點就按照上述的方法加入即可。

#include

#include

#include

#include

using

namespace std;

const

int maxn =

405;

typedef

long

long ll;

const

int mod =

998244353

;vector<

int> g[maxn]

;ll dis[maxn]

[maxn]

,ans[maxn]

[maxn]

,vis[maxn]

;int n;

void

bfs(

int begin)}}

}int

main()

for(

int i =

1; i <= n; i++

)bfs

(i);

for(

int i =

1; i <= n; i++)}

} vis[tx]=1

; ans[i]

[j]=1;

for(

int k =

1; k <= n; k++

) vis[k]=1

; ans[i]

[j]= ans[i]

[j]* cnt % mod;}}

ans[j]

[i]= ans[i]

[j];}}

for(

int i =

1; i <= n; i++)}

return0;

}

計蒜客 騰訊狼人殺 簡單 狀壓 列舉

很久很久以前,在萊茵河畔一座岸壁陡峭的山頂上,有乙個名叫 杜斯特瓦德 的小村莊。不久前,這個小村莊每晚都會受到狼人的侵襲。每個夜晚,狼人都會在村中進行搶劫,並且會有乙個村民成為這群狼人的犧牲品。然而村民們不會坐以待斃,他們試圖在白天找到這些狼人並處決他們。作為杜斯特瓦德村的長老,你需要組織村民來對抗...

計蒜客 T1194 生理週期(列舉)

解題思路 從d 1天開始試,先找到體力值高峰的日子,然後再找體力和情感雙高峰的日子 找到體力高峰的日子後只需要考慮下乙個體力高峰的日子是不是情感高峰 然後再找體力 情感 智力三高峰的日子。為了省時我們可以跳著試,因為第乙個體力高峰的日子到第二個體力高峰的日子沒有必要去試,所以可以在找體力 情感雙高峰...

計權聲級(A計權,B計權與C計權)

由於人耳對不同頻率的聲音的感受能力不同,即相同聲壓級的聲音,人們會在聽覺上感到不同的響度。當需要客觀測量又要反映主觀響度感覺的方法來度量和評估實際的聲音強弱。國際標準為 iec61672 2014 由於a計權對描述人耳聽力相對於真實聲學的頻率響應最有意義,所以應用最為廣泛。但由於a計權僅適用於相對安...