BZOJ
bzoj1031 [JSOI2007]字符加密Cipher
倍长后求 sa,遍历 sa,输出小于等于 n 的各个后缀第 n 个位置的字符
bzoj5301 [Cqoi2018]九连环
莫队
bzoj5313 新Fib数列
F[n]F[n]F[n]模pmp^mpm的最小循环节长度为G(p)∗pm−1G(p)*p^{m-1}G(p)∗pm−1,其中G(p)为F[n]G(p)为F[n]G(p)为F[n]模素数ppp的最小循环节长度。如果555是模ppp的二次剩余,那么循环节的长度是p−1p-1p−1的因子,否则,循环节的长度是2(p+1)2(p+1)2(p+1)的因子。
由此可知该题的循环节为 20,打表即可。
bzoj5334 [Tjoi2018]数学计算
线段树维护区间乘积
bzoj5358 [Lydsy1805月赛]口算训练
首先将询问拆成 [1,l] 和 [1,r] 。将 d 分解质因数,因此我们需要计算前缀 [1,x] 中每个质数的出现次数。因为可以离线搞,所以直接扫一遍就行了。
bzoj5387 [Lydsy1806月赛]质数拆分
折半暴力
bzoj5442 [Ceoi2018]Global warming
考虑转换问题,对于一个区间 [l,r] 的增加,等价于对 [l,n]的增加。对于一个区间 [l,r] 的减少,可以等价于对 (r,n] 的增加。因此问题转换为对于一个序列, 可以对 [x,n] 的位置都增加一个值 y,在这种情况下的 LIS 最大值。因此前后分别求一下 LIS 即可。