傳送門
設(shè)f(i)表示[i..n]組成的十進(jìn)制數(shù)在模p意義下的值 那么f(i)-f(j)(j>i)就表示了[i..j-1]這一段區(qū)間表示的十進(jìn)制數(shù)擴大10的若干次冪之后在模p意義下的值 如果不考慮質(zhì)數(shù)2和5的話,擴大10的若干次冪是不應(yīng)響結(jié)果的,因為剩余的質(zhì)數(shù)都不是10的約數(shù) 那么如果要統(tǒng)計區(qū)間[l..r]有多少個子串滿足是p的倍數(shù)的話,只需要統(tǒng)計f(l)..f(r+1)這些數(shù)中有多少對數(shù)相同就行了 將f(i)離散化之后搞一個計數(shù)器然后直接莫隊就行了 然后特判一下2和5的情況,因為擴大了10的若干次冪,相當(dāng)于加了若干個質(zhì)因子2和5,不能像上面那樣求 但是其實2和5的情況更簡單 若p=2/5,如果某一個位上的數(shù)是能整除p,那它的后綴都是p的倍數(shù)都可以計算 然后搞一個前綴和每次查詢的時候減一下就行了
新聞熱點
疑難解答