【JZOJ5416】密碼(口胡)
阿新 • • 發佈:2018-12-30
Description
現在身為校慶志願者的小C正在引導校友們到他們集合的教室。終於,忙了一段時間的他可以休息一會兒了。這時,旁邊一位老校友的話吸引到了他。“我後來當了一名探險家,有一次,我來到了一個地方,在正前方有一扇門,旁邊寫著一行文字:’現在給你前m個字串G,有一個拼接規律T,它是一個長度為m的一個排列,你要把現在已經得到的最後m個字串按照T的順序拼接起來,得到一個新的字串,用這種方法,你可得到第n個字串P,再給你另外一個字串S,則S在P中出現的次數就是這個門的密碼…’”聽到這裡,小C陷入了沉思:到底密碼是多少呢?不過由於小C比較討厭大數,他只想知道這個密碼除以(10^9+7)的餘數。你能幫幫他嗎?
Solution
根據資料範圍,我們發現新串匹配個數等於它前面m個的匹配個數加上按照排列接起來增加的匹配數,而且詢問的匹配串是小於原m個串的長度的,於是我們只用保留每個串前
接著我們就暴力增加串,只記錄頭尾的前
於是我們把這些迴圈節的答案記錄下來,扔進一個
即
Code
口胡沒有程式碼,說的輕巧,實際實現不容易。