1. 程式人生 > 其它 >HH去散步

HH去散步

題目link:https://www.luogu.com.cn/problem/P2151


Part1:

首先這道題的題目限制為走過一條邊不能按原邊返回,這就導致了這個圖的有向性,從而得出需要拆邊的結論。

Part2:

拆完邊後,容易看出如果要想滿足題目限制,那麼相當於走過第i條邊後,除了i的反向邊都可以走。

Part3:

得到上述特性後,再來觀察題目,發現數據範圍裡的m的值比較小,且比較的特殊,但是注意,因為通過Part1和Part2已經拆完邊了,那麼邊的數量(也就是m的值)需要 * 2。

眾所周知,這道題要求的路徑方案數和鄰接矩陣的冪次方有很大的關係,再加上 2 * m = 120 這個值,發現 120 的 3 次方 * log t(矩陣快速冪的複雜度為n^3 log k)約為 5e7 ,不會超時,因此考慮用2 * m為行列的大小建一個矩陣。

Part4:

建完矩陣後(注意這裡矩陣),容易發現矩陣中的元素的一種恰當的表達方式為如果第i條邊的終點是第j條邊的起點 && 第i條邊和第j條邊不是反向邊,那麼矩陣中的第i行第j列的元素就是1,否則為0。

Part5:

考慮