题目
思路简单代码毒瘤的经典简单OI题,真的只需要会倍增
题解主要就是一句话:一个 ( m o d 2 ) \pmod 2 (mod2)意义下的多项式的平方就是每一项的指数 × = 2 \times =2 ×=2,那么可以考虑使用递归形式的快速幂来利用可快速平方和乘一个原多项式的性质,又因为需求串长度 < = 18 <=18 <=18,所以我们可以考虑存长度为需求串长的所有串的个数,并在倍增时简单转移所有串的个数,并且每次删除最前面的若干字符来求在区间 [ x , n ∗ m + 1 ] [x,n*m+1] [x,n∗m+1]的串的个数即可得到 [ L , R ] [L,R] [L,R]的个数,最后只需要考虑一下边界情况,存最前面的 2 n + 1 2n+1 2n+1个字符即可。
。。。。。。
简单转移 − > -> −>预处理即可。
边界处理 − > -> −>__ i n t 128 \rm int128 int128大法好。
限制删除 − > -> −> d p \rm dp dp求出倍增的每个时刻最少需要留多少位,即可保证每次都只删除