摘要: 给定n个字符串s1,s2,...sn q次询问,第k个字符串在s[l,r]中出现了多少次。 首先肯定是对所有的字符串建立AC自动机。 然后,考虑弱化版本,第k个字符串在所有字符串中出现了多少次。 先找到第k个字符串在字典树内对应的节点。 然后,k的整个子树所表示的字符串,k都是它们的后缀。 这样就可 阅读全文
posted @ 2021-07-13 21:44 zlc0405 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 有n次操作,格式为1 c或2 j c,分别表示新建一个为c的字符串,和在第j次操作得到的串后接上c后新建一个字符串。 接着是m次询问,每次询问版本i的串中,t的出现次数。 m次询问,每次询问版本i的字符串中,t的出现次数。 如果暴力建字符串肯定存不下。 考虑a aa aaa aaaa aaaaa.. 阅读全文
posted @ 2021-07-13 21:30 zlc0405 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 给出n个字符串。每个字符串最初的权值都是0。 请你支持以下两种操作: 1)把第i个字符串的权值改成x。 2)给出一个文本串q,询问所有字符串中,是q的子串的最大权值。 做法: 首先对所有字符串建立AC自动机。 假设所有字符串互不相同。 输入一个文本串,对于文本串的第i个节点,它到根节点的路径的权值最 阅读全文
posted @ 2021-07-13 18:07 zlc0405 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 给出n个字符串,每个字符串有两种状态:退役和服役 三种操作: 1)询问当前服役的字符串在询问字符串内的出现次数之和。 2)把一个退役的字符串设为服役。 3)把一个服役的字符串设为退役。 如何处理操作1? 对所有字符串建出AC自动机,建出fail树,求子树和。 每个模式串s_i在t中出现的次数之和就是 阅读全文
posted @ 2021-07-13 15:53 zlc0405 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 给出一个字符串t和n个字符串 设f(t,s)为s在t中的出现次数。 求$sum_^n\sum_^nf(t,s_i+s_j)$ 枚举划分点。 对t的每个划分点x,处理出有多少个字符串是当前t[0,x]的后缀。 然后反着建AC自动机,反着枚举划分点x,处理出有多少个字符串是当前t[x,n]的后缀。 处理 阅读全文
posted @ 2021-07-13 12:52 zlc0405 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 设$d(x)$为$x$的约数个数,给定$n,m$,求$\sum_^n\sum_^md(ij)$ 首先有一个前置知识: \(d(ij)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\) 所以原式等于: \(\sum_{i=1}^n\sum_{j=1}^m\sum_{x| 阅读全文
posted @ 2021-07-13 00:49 zlc0405 阅读(40) 评论(0) 推荐(0) 编辑