随笔分类 - 字符串-AC自动机
摘要:Day 1 T1 数字表格 题目大意 · 求$\prod\limits_{i=1}^n\prod\limits_{j=1}^mFibonacci(\gcd(i,j))$,$T\leq1000$,$n,m\leq10^6$ 思路 · 一言不合化式子(不失一般性地假设$n include include
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=3530" 上午gty的测试题,爆0了qwq 类似文本生成器那道题,把AC自动机的转移建出来,准确地说建出了一个Trie图,然后在上面dp就可以了。 这道题因为有小于等于n的限制,所以要用类似数位dp的
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=4567" 贪心。 任何不用第一种情况的方案吃的泡椒数都小于$n^2$,所以最小泡椒数的方案一定不包含第一种情况。 根据第二三种情况,正确的方案一定满足:一个字符串的所有后缀一定比它在表中先出现。 所以
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=3881" 好难的一道题啊qwq 一开始我想对T建AC自动机,根本不可做。 正解是对S建AC自动机。 fail树的性质:一棵子树中所有的点都有子树的根这个后缀。 对于要插入的一个串$P_x$,我们在AC
阅读全文
摘要:在校内OJ上A了,没有加强制在线的东西。。不放链接了。 这道题题意是维护一个字符串集合,支持三种操作: 1.加字符串 2.删字符串 3.查询集合中的所有字符串在给出的模板串中出现的次数 操作数$m \le 3 10^5$,输入字符串总长度$maxL \le 4 10^6$ 对于查询想到了要用AC自动
阅读全文
摘要:"http://uoj.ac/problem/13" 建立trie树,然后建立go指针, 和AC自动机里的fail指针差不多, 走到一个快捷方式就从go指针走。 注意在trie树上要保留字符'/',不能用end标记来标识一个字符串的结束。 因为可能出现"/Iam/zz"和"/Iamzz"这两种情况,
阅读全文
摘要:完全不会啊,看题解还看了好久,我是蒟蒻$QAQ$ $zyf$的题解挺好的:http://blog.csdn.net/clove_unique/article/details/51059425 $fail树$的性质完全不知道啊,只好现学,,, 根据读入的顺序来扫$Trie树$并更新树状数组真的好神!我
阅读全文
摘要:看了一下简单的$Trie图$,调模板调啊调一连调了$2h$,最后发现$-'a'$打成$-'A'$了hhh,有种摔键盘的冲动。 $Trie图$是$Trie树$上建立“前缀边”,不用再像在$Trie树$上那样顺着$fail$一个一个往上跳了,省了不少时间。这种做法在$hihoCoder$上时间排到了前三
阅读全文
摘要:一直不理解到底怎么做啊,想了好久$TwT$ 最后终于明白了为什么找到第一个满足条件的$fail$就计算,因为避免重复,这个回答,,, 然后$root$下面要接上26个节点,这里26个字母中不在字典内的都用$f[i][0]$代替了,这个也想了好久,$==$我还是回家种地吧。 最后终于做出来了,因为看了
阅读全文
摘要:参考iwtwiioi的模板写出来的。上午gty讲的并没有听懂,只好自己慢慢对着模板理解。 在HDU上为什么相同的程序提交有时T有时A!!! 奉上sth神犇的模板(不是这道题): var ch:char; q,g,num:array [0..500001] of longint; st:string;
阅读全文