​[TJOI2018]异或​​​ 建两棵可持久化 trie , 类似主席树一样查询就可以了
​[TJOI2018]数学计算​​ 用线段树维护一下区间乘就可以了
​[TJOI2018]智力竞赛​​ 题意:选 TJOI 2018 题解_出点 条可以相交的链,如果不能覆盖完,求最小的不能被覆盖的点
我们可以套路地对每个点拆点(入点出点),TJOI 2018 题解_二分答案_02连一条流量为 TJOI 2018 题解_差分_03, 费用为 TJOI 2018 题解_差分_03 的边,为了让它继续走,在连一条流量为TJOI 2018 题解_二分答案_05,费用为 0 的边,然后二分答案,如果 TJOI 2018 题解_差分_06,我们就不考虑它的贡献,将费用改成 0 就可以了,原点汇点把总流量限制到 TJOI 2018 题解_出点 即可
​[TJOI2018]游园会​​ 类似自动机一类的题,我们可以这样做 TJOI 2018 题解_出点_08 表示当前到第 i 位,在自动机上的结点 j,匹配到 TJOI 2018 题解_二分答案_09 的第 k 位的方案数,然后就可以枚举下一位填什么转移了
考虑怎么表示自动机的状态,回忆到 TJOI 2018 题解_二分答案_10 的求法
TJOI 2018 题解_差分_11
不妨用 TJOI 2018 题解_差分_12 表示原串,TJOI 2018 题解_出点_13 表示我们要去填的串
考虑从 TJOI 2018 题解_差分_14 变到 TJOI 2018 题解_二分答案_15,我们需要的是 TJOI 2018 题解_差分_16
发现需要不好办的就是 TJOI 2018 题解_差分_17 的状态
有个暴力的办法就是开一个15维的数组记录 TJOI 2018 题解_差分_17 的所有第 j-1 层的 TJOI 2018 题解_出点_19
然后发现 TJOI 2018 题解_差分_20,所以差分一下是一个 0/1 串,就可以记录了
每次转移的时候解压出 TJOI 2018 题解_差分_21, 然后转移出 TJOI 2018 题解_差分_21,再把 TJOI 2018 题解_差分_21 压成 0/1 串,妙啊!
​[TJOI2018]碱基序列​TJOI 2018 题解_出点_24
​[TJOI2018]教科书般的亵渎​​ 发现主要是求 TJOI 2018 题解_差分_25,用拉格朗日插就可以了