摘要:
题面传送门 实在写不动AC自动机于是跑来写dp了。 考虑这个怎么转化。 首先可以转化为求最大边数然后加一。 左右端点一定有一种最优情况不是叶子节点,因为如果是叶子节点那么叶子节点上面那个也行。 之后计算一下每个点的度,每个点的贡献是度-1,即减去与其父节点的连边的重复贡献。 然而你会发现根节点多减了 阅读全文
posted @ 2021-02-04 19:19
275307894a
阅读(36)
评论(0)
推荐(0)
摘要:
题面传送门 首先看到题面中保证$n$为偶数,所以可以从这一个方面来推。 稍微用初一上的内容推一下就可以发现:对于一次取得升序序列$a$,其权值为$\sum\limits_{2}+1}-\sum\limits_{\frac{2}}$ 那么一定是在满足每种颜色$k$个的颜色下,最大的$\frac{2}$ 阅读全文
posted @ 2021-02-04 17:57
275307894a
阅读(106)
评论(0)
推荐(0)
摘要:
题面传送门 话说我居然连快读都没加就过了。 容易想到莫队。 首先可以看出一个节点增/删有两个贡献:区间比它小的数的个数和区间比它大的数的和。 容易想到可以用树状数组维护,但是这个是$O(n\sqrt nlogw)$的,不是很优秀。 考虑莫队二次离线,那么分开算贡献即可。 注意离线时用域值分块可以做到 阅读全文
posted @ 2021-02-04 13:30
275307894a
阅读(78)
评论(0)
推荐(0)
摘要:
题面传送门 AC自动机蛮好的一道题,需要有一定对AC自动机的理解。 首先把所有字符串扔到AC自动机里面去。然后求出fail指针。 对于每个询问暴力匹配肯定是不行的,考虑怎么转化。 可以发现如果把fail指针抽出来,那么一个节点的子树内所有节点都能与这个节点匹配。 那么就可以把询问离线然后dfs搞。 阅读全文
posted @ 2021-02-04 10:53
275307894a
阅读(56)
评论(0)
推荐(0)
摘要:
题面传送门 这个东西很难优化,考虑用另一种方法计算。 考虑枚举断点,左边为$s1$,右边为$s2$。左边直接AC自动机匹配即可。但是右边很难搞。 发现右边要匹配前缀不好处理,那么就让模式串和文本串同时反序,就可以变成好搞的后缀了。 时间复杂度$O(n+\sum{|S|})$ 代码实现: #inclu 阅读全文
posted @ 2021-02-04 09:30
275307894a
阅读(56)
评论(0)
推荐(0)
摘要:
题面传送门 考虑一下,会发现这个东西不太好算,考虑容斥一下,用总数减去一个都没有出现的个数。 那么就可以设$dp_{i,j}$表示匹配到$i$,AC自动机上匹配到$j$的方案数。预处理一下就可以做了。 时间复杂度$O(m\sum{|S|})$ 代码实现: #include<cstdio> #incl 阅读全文
posted @ 2021-02-04 08:19
275307894a
阅读(56)
评论(0)
推荐(0)