2019省选题选做

由于写博客太麻烦了干脆开到一篇来写好了

题目各大$\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