上一页 1 2 3 4 5 6 7 8 9 10 ··· 55 下一页
摘要: 支持在一个字符串后面在线添加一个字符,同时每次询问当前字符串的本质不同子串数量。 后缀自动机好像有一个性质,就是在线添加字符的时候并不会影响link树的形态,只是在link树上新增一个节点?刚开始一知半解... #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2021-07-15 15:41 zlc0405 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 建出link树后,每个节点的len[i]-len[link[i]]就是它所代表的不同子串数量。 #include<bits/stdc++.h> using namespace std; const int maxn=4e6+10; int len[maxn],link[maxn],nxt[maxn] 阅读全文
posted @ 2021-07-15 15:14 zlc0405 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 先对母串建立后缀自动机。 然后建出link树。 然后,在link树上算出每个节点的子树大小,子树大小*len[i]就是当前节点所表示的字符串的长度乘出现次数。 坑:后缀自动机里存在虚拟节点,这些节点的sz是0. 处理方法就是只对cur记sz[cur]=1,对clone不管。 #include<bit 阅读全文
posted @ 2021-07-14 20:22 zlc0405 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 给定n个字符串s1,s2,...sn q次询问,第k个字符串在s[l,r]中出现了多少次。 首先肯定是对所有的字符串建立AC自动机。 然后,考虑弱化版本,第k个字符串在所有字符串中出现了多少次。 先找到第k个字符串在字典树内对应的节点。 然后,k的整个子树所表示的字符串,k都是它们的后缀。 这样就可 阅读全文
posted @ 2021-07-13 21:44 zlc0405 阅读(136) 评论(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 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 给出n个字符串。每个字符串最初的权值都是0。 请你支持以下两种操作: 1)把第i个字符串的权值改成x。 2)给出一个文本串q,询问所有字符串中,是q的子串的最大权值。 做法: 首先对所有字符串建立AC自动机。 假设所有字符串互不相同。 输入一个文本串,对于文本串的第i个节点,它到根节点的路径的权值最 阅读全文
posted @ 2021-07-13 18:07 zlc0405 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 给出n个字符串,每个字符串有两种状态:退役和服役 三种操作: 1)询问当前服役的字符串在询问字符串内的出现次数之和。 2)把一个退役的字符串设为服役。 3)把一个服役的字符串设为退役。 如何处理操作1? 对所有字符串建出AC自动机,建出fail树,求子树和。 每个模式串s_i在t中出现的次数之和就是 阅读全文
posted @ 2021-07-13 15:53 zlc0405 阅读(36) 评论(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 阅读(26) 评论(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 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 有一张$n \times m$的数表。 其第$i$行第$j$列(\(1 \leq i \leq n,1 \leq j \leq m\))的数值为能同时整除$i$和$j$的所有自然数之和。 给定$a$,计算数表中不大于$a$的数之和。 设$d(x)$为$x$的因子之和。 写出式子: \(\ 阅读全文
posted @ 2021-07-12 22:05 zlc0405 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 55 下一页