摘要: 后缀自动机SAM 建 SAM ,对于每个节点维护一个区间 \([l,r]\) 表示这个节点即其儿子能到的最大和最小的原串上的位置 对于每个点,答案为 \(min(r-l+1,len)\) ,因为要保证不能重复 // Author: xiaruize #ifndef ONLINE_JUDGE bool 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(14) 评论(0) 推荐(0)
摘要: dp #贪心 \(dp_{i,j,k}\) 表示考虑前 \(i\) 段,已经用了 \(j\) 个字符,其中 \(k\) 个字符已经确定最后一个 转移可以每次枚举 \(j,k\) 的变化量,然后贪心的分配 具体的贪心为将 第一次出现的放在当前最后,最后一次出现的放最前 // Author: xiaru 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(14) 评论(0) 推荐(0)
摘要: 数学 #dfs 枚举一棵子树断开的边,标记这条边一个子树内的节点,在另一棵树上枚举断开的边,统计子树大小和与第一棵树匹配的点的个数 设第一棵树大小为 \(siz\),第二棵树大小为 \(tot\) ,其中匹配的点数为 \(cnt\) 那么这一对边的 \(S(e_1,e_2)=max(cnt,tot- 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(12) 评论(0) 推荐(0)
摘要: 莫比乌斯函数 #筛法 #gcd #数学 一定选 \(k\) 的倍数,原题目等价于 \([\frac{l}{k},\frac{r}{k}]\) ,选择 \(n\) 次,最后 \(gcd=1\) 考虑容斥去算,注意到超过 \(10^5\) 的质数的影响不好处理,但是因为区间长度,大于 \(10^5\) 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(13) 评论(0) 推荐(0)
摘要: 离散化 #dp #贪心 对左右端点离散化,令 \(L=min(r_i),R=max(L_i)\) \(dp_i\) 表示将所有碰到 \([L,i]\) 这个区间的连起来的最小代价 可以枚举所有的区间,对于所有的包含 \(i\) 的区间,因为 \(dp\) 单调递增,直接从它的左端点转移 反过来处理 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(15) 评论(0) 推荐(0)
摘要: 后缀自动机SAM #算法 SAM满足如下性质 有向无环图 每个转移只有一个字符 接受且只接受 \(S\) 的后缀 节点数在满足上述条件下最小 考虑不满足性质 \(3\),那么 \(trie\) 就可以做到 将这个 \(trie\) 建出来后,发现有很多完全相同的子树 定义 \(endpos(s)\) 阅读全文
posted @ 2024-03-30 16:48 xiaruize 阅读(19) 评论(0) 推荐(0)