bzoj 3195 奇怪的道路
Written with StackEdit.
Description
小宇從歷史書上了解到一個古老的文明。這個文明在各個方面高度發達,交通方面也不例外。考古學家已經知道,這個文明在全盛時期有\(n\)座城市,編號為\(1..n\)。\(m\)條道路連接在這些城市之間,每條道路將兩個城市連接起來,使得兩地的居民可以方便地來往。一對城市之間可能存在多條道路。
據史料記載,這個文明的交通網絡滿足兩個奇怪的特征。首先,這個文明崇拜數字\(K\),所以對于任何一條道路,設它連接的兩個城市分別為\(u\)和\(v\),則必定滿足\(1 <=|u - v| <= K.\)此外,任何一個城市都與恰好偶數條道路相連(\(0\)也被認為是偶數)。不過,由于時間過于久遠,具體的交通網絡我們已經無法得知了。小宇很好奇這\(n\)個城市之間究竟有多少種可能的連接方法,于是她向你求助。
方法數可能很大,你只需要輸出方法數模\(10^9+7\)后的結果。
Input
輸入共一行,為\(3\)個整數\(n,m,K\)。
Output
輸出\(1\)個整數,表示方案數模\(10^9+7\)后的結果。
Sample Input
【輸入樣例1】
3 4 1
【輸入樣例2】
4 3 3
Sample Output
【輸出樣例1】
3
【輸出樣例2】
4
HINT
\(100\%\)的數據滿足\(1 <= n <= 30, 0 <= m <= 30, 1 <= K <= 8.\)
兩種可能的連接方法不同當且僅當存在一對城市,它們間的道路數在兩種方法中不同。
在交通網絡中,有可能存在兩個城市無法互相到達。
Solution
- \(K\)的范圍較小,考慮設計狀態數目與\(K\)有關的狀壓\(dp\).
- \(f[i][j][S][l]\)表示考慮到第\(i\)個點,使用了\(j\)條邊.
- \(S\)只用壓縮\(i-k\)~\(i\)的度數奇偶性,因為前面的點是無法再被連邊的.
- \(l\)表示當前處理\(i\)向\(i-l\)連邊.
- 那么枚舉\(i,j,S,l\),按照狀態定義連邊或不連邊轉移.
轉載于:https://www.cnblogs.com/jklover/p/10062171.html
總結
以上是生活随笔為你收集整理的bzoj 3195 奇怪的道路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: E - Water Distributi
- 下一篇: 阿里云-AliRepo