AtCoder Beginner Contest 196 個(gè)人題解

比賽鏈接:https://atcoder.jp/contests/abc196
官方題解:https://atcoder.jp/contests/abc196/editorial


A. Difference Max
題意:,
,求?
的最大值。
題解:
B. Round Down
題意:高精度小數(shù)取整。
題解:把小數(shù)點(diǎn)前的內(nèi)容輸出即可。
C. Doubled
題意: 到
中有多少整數(shù),它的位數(shù)為偶數(shù),且前半部分和后半部分相同。
題解:枚舉前半部分即可。
D.?Hanjo
題意:有一個(gè)? 行?
列的方格圖,用?
個(gè)?
的矩形和?
個(gè)?
的矩形將其鋪滿,求有多少種不同的鋪法。
題解:爆搜。
E. Filters
題意:,給定
和
,詢問(wèn)
個(gè)
,求出
。
題解:吉司機(jī)線段樹(shù)沖沖沖。時(shí)間復(fù)雜度 。
F. Substring 2
題意:給定兩個(gè)? 串?
和
,求至少改變?
中的多少位,使得?
成為?
的一個(gè)子串。
題解:題目可以轉(zhuǎn)化為用? 對(duì)?
進(jìn)行字符串匹配,求最少失配位數(shù)。樸素做法時(shí)間復(fù)雜度為
,無(wú)法通過(guò)此題,需要使用多項(xiàng)式算法進(jìn)行優(yōu)化。令
,表示從?
串的第?
位開(kāi)始對(duì)?
進(jìn)行匹配的失配位數(shù)。式子可化為
,前兩項(xiàng)可以預(yù)處理得到,而最后一項(xiàng)需利用多項(xiàng)式算法進(jìn)行計(jì)算。若我們將 t 串反轉(zhuǎn),則原式變?yōu)?
,最后一項(xiàng)便是經(jīng)典的卷積形式,使用 FFT 或 NTT 算法即可得到結(jié)果,時(shí)間復(fù)雜度
。

算法競(jìng)賽交流群:1043272289
