天天看點

P7293-[USACO21JAN]Sum of Distances P【統計,bfs】

題目連結:https://www.luogu.com.cn/problem/P7293

有\(k\)張聯通無向圖,有\(k\)個人從每張圖的點\(1\)出發,定義所有人的位置合為一個狀态,求初始狀态到達所有能到達狀态的最短時間的和。

輸出答案對 \(10^9+7\) 取模。

\(\sum n\leq 10^5,\sum m\leq 2\times 10^5\)

因為可以反複橫跳,對于每個點我們求出到達的最短的奇數/偶數距離,記為\(dis1/dis2\)。

那麼對于一個狀态\((i_1,i_2,...,i_n)\)答案就是

\[\min\{\ \max\{dis1_{i_j}\},\max\{dis2_{i,j}\}\ \}

\]

然後這個又有\(\min\)又有\(\max\)的很難搞,但是我們有一個式子\(a+b=\max\{a,b\}+\min\{a,b\}\)(好像很廢話),然後就有\(\min\{a,b\}=a+b-\max\{a,b\}\),這樣就把\(\max\)消掉了。

那麼答案有

\[\max\{dis1_{i_j}\}+\max\{dis2_{i_j}\}-\max\{dis1_{i_j},dis2_{i_j}\}

然後跑出\(dis1,dis2\)排個序就很好統計了。

注意不能統計上無法達到的狀态。

時間複雜度:\(O(N\log N+M)\)