t e s t 0429 test~ 0429 test 0429
A
- 考场比较菜,写的 O ( 2 10 n ) O(2^{10}n) O(210n),大概是贪心每一位,然后查有没有包涵当前数的,如果有就加上,这样查询是 O ( 16 ∗ 2 6 ) O(16*2^6) O(16∗26),修改是 O ( 2 10 ) O(2^{10}) O(210),正解的话考虑 f i , j f_{i,j} fi,j 表示前 8 8 8 位为 i i i,后 8 8 8 位查询 j j j 时的最大值即可,复杂度 O ( 2 8 n ) O(2^{8}n) O(28n)
B
- 直接 k m p kmp kmp 自动机,用主席树维护字符集,加儿子的时候要把点 c o p y copy copy 一下不然自动机的转移有锅
C
- 考虑用矩阵表示转移,当
k
≠
4
k\neq 4
k=4 时,加法和乘法都是一个置换
那么直接交换行列即可(乘 0 是区间 c o v e r cover cover)
当 k = 4 k=4 k=4 时,乘 2 2 2 的时候会变成 022020 022020 022020,对这个按奇偶性特殊维护,如果加 1 或加 3 的话,区间的 022020 022020 022020 会取反,那么再维护一个取反的即可,复杂度 O ( n log n ( k + 1 ) 3 ) O(n\log n(k+1)^3) O(nlogn(k+1)3)