摘要:
"题意" 真是道回文自动机好题。 首先考虑答案必定是一个回文串+剩余部分的形式,因此可以建出回文自动机,之后考虑每个长度为偶数的回文串。 对于一个长度为偶数的回文串,设它在回文自动机上对应的节点为$x$,我们对于每个$x$求出$trans_x$表示x的最长后缀回文串,满足$len_{trans_x} 阅读全文
摘要:
题意: "做法来自" 首先竞赛图缩点后是一条链,$1$号节点在开头的那个$SCC$中,因此从$1$号节点出发的最长链即为$1$号节点所在的$SCC$的大小$+1$号节点拓扑序之后的所有$SCC$的大小之和。 设$f_i$表示$i$个点的竞赛图数量,显然有$f_i=2^{\frac{n (n 1)}{ 阅读全文
摘要:
"题意" 考虑对每个节点$x$维护$lastpos_x$表示$x$的所有后缀回文串中第一个$len\leqslant len_x/2$并且能和$x$最后一个字符匹配的,之后枚举节点,判断该点回文串是否合法。 求$lastpos_x$: 如果新建节点$x$满足$len_x\leqslant 2$,那么 阅读全文
摘要:
"题意" 这个DP状态有点神。 首先考虑一个最暴力的状态:$f_{i,j,k,u}$表示第一个选了$i$个,第二个选了$j$个,第一个结尾为$k$,第二个结尾为$u$是否可行。 现在考虑消减状态: 1.首先知道了处理到第几个,那么只要知道一个长度就能推出另一个。 因此状态可以改为$f_{i,j,k, 阅读全文
摘要:
题意: 这题显然直接tarjan是做不了的。 这里安利另一个求SCC的算法Kosaraju,学习的话可以见 "这篇博客" 于是结合莫队,我们有了个暴力。 发现主要瓶颈是dfs过程中找最小的未经过的点,我们用bitset优化一下就过了。 注意有重边,不能直接在biset中删除,要开个邻接矩阵判一下。 阅读全文
摘要:
"题意" 回滚莫队见 "这篇博客" 需要注意一个细节,写在代码注释里了。 code: 阅读全文
摘要:
"题意" 关于回滚莫队见 "这篇博客" 。 code: 阅读全文
摘要:
"题意" 这题很难想到用莫队去做,因为第一印象是这个没办法O(1)移动指针。 考虑从$[l,r]$移动到$[l,r+1]$ (从$[l,r]$移动到$[l 1,r]$同理)。 我们用ST表$O(1)$找到$[l,r+1]$的最小值的位置$mid$,考虑新加入的r+1会产生哪些贡献:显然是很多以$r+ 阅读全文