【BZOJ5213】[ZJOI2018]迷宫(神仙题)
生活随笔
收集整理的這篇文章主要介紹了
【BZOJ5213】[ZJOI2018]迷宫(神仙题)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【BZOJ5213】[ZJOI2018]迷宮(神仙題)
題面
BZOJ
洛谷
題解
首先可以很容易的得到一個\(K\)個點的答案。
構(gòu)建\(K\)個點分別表示\(mod\ K\)的余數(shù)。那么點\(i\)的出邊\(j\)指向\(i*m+j\ mod\ K\)。容易證明這樣子一定是可行的。
但是我們顯然還有一部分點是可以丟掉的,即出現(xiàn)點等價的時候,直接合并兩個點即可。
那么什么情況下兩個點等價呢?顯然是兩個點可以到達(dá)的點集相同的時候是可以直接把這兩個點給合并的。
考慮一下\(i*m\)在模\(K\)意義下相等的數(shù)的個數(shù),令\(d=gcd(m,K)\),那么合法的取值有\(K/d\)個。定義一個參數(shù)\(l\)表示還有\([1,l]\)這些數(shù)存在。如果\(l>k/d\),那么在范圍內(nèi)可以取遍所有的合法取值,那么合并這些之后,剩下的部分遞歸處理,這里刪去了\(\frac{m}ozvdkddzhkzd(k-l)\)個合并之后到數(shù)。否則如果\(l\le k/d\),或者\(d=1\),證明必定兩兩不等,所以這\(l\)個數(shù)必須要。
轉(zhuǎn)載于:https://www.cnblogs.com/cjyyb/p/10366991.html
總結(jié)
以上是生活随笔為你收集整理的【BZOJ5213】[ZJOI2018]迷宫(神仙题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发进度3
- 下一篇: chrome面板介绍