由于写博客太麻烦了干脆开到一篇来写好了
题目各大$\rm oj$都找得到。
还有一些不是最近写的也写进来好了,但是估计题解没几句话
十二省联考
「十二省联考 2019」异或粽子
可持久化$\rm trie$树板子题。
code。
「十二省联考 2019」字符串问题
sol。
以前写了题解就扔个链接吧
「十二省联考 2019」春节十二响
sol。
HNOI
「HNOI2019」校园旅行
sol。
「HNOI2019」白兔之舞
sol。
GXOI
「GXOI / GZOI2019」与或和
逐位考虑,可以发现问题就是求一个$01$矩阵的全$0$子矩形个数。
那么我们可以用一个上升的单调栈来求这个,总复杂度$O(n^2\log v)$。
code。
「GXOI / GZOI2019」逼死强迫症
sol。
「GXOI / GZOI2019」旅行者
考虑最短路一定在两个不同的点之间,换句话说就是这两个点编号二进制下一定有至少一位不同。
那么枚举二进制位,以这一位为$1$的点为起点跑多源最短路,然后取最小值即可。
code。
「GXOI / GZOI2019」旧词
把询问离线下来,按$x$从小到大排序,把每个点的权值和父亲节点差分一下,那么只需要支持链加和链上求和操作即可。
树剖维护,复杂度$O(n\log ^2 n)$。
code。
BJOI
「BJOI2019」奥术神杖
把式子取个$\log$就变成了$\frac{1}{n}\sum_{i=1}^{n}\log v_i$,就变成了$\rm 01$分数规划问题,那么可以二分答案。
二分检查的时候建立$ac$自动机$\rm dp$就好了,复杂度$O(n^2\log v)$。
code。
「BJOI2019」排兵布阵
普及组$\rm dp$题。
code。
「BJOI2019」光线
设$f_i$表示前$i$块玻璃叠起来从第一块玻璃射入的透光率,$g_i$表示从第$i$块玻璃射入的反射率。
不难得到:
显然后面的无穷级数收敛,且等于$\dfrac{1}{1-b_ig_{i-1}}$。
暴力递推就好了。
code。
SNOI
「SNOI2019」字符串
sol。
「SNOI2019」数论
枚举$a_i$,那么我们要找形如$a_i+P\cdot t$的数$\bmod Q\in B$的个数。
可以发现$(a_i+P\cdot t)\bmod Q$会形成一个环,具体来说环长为$Q/\gcd(P,Q)$,一共有$\gcd(P,Q)$那么多个环。
那么可以一开始把环全处理出来,然后把$b$当做贡献加进去,那么破环成链之后统计前缀和即可。
code。
「SNOI2019」纸牌
显然三叠$(i,i+1,i+2)$可以合并成三个形如$(i,i,i)$的叠。
那么每种$(i,i+1,i+2)$最多出现两次,那么$f_{i,j,k}$表示当前$\rm dp$到$i$了,$i-1$开头的叠出现了$j$次,$i$开头的出现了$k$次,就可以转移了。
由于后两维状态很少,可以矩阵优化,那么只要在每个有下限的位置改下转移矩阵就好了。
code。