随笔分类 - Tire
摘要:传送门 sb题面误导了我半天。 按位考虑, 对于 $a[i]$和$i$的一位考虑什么样的$a[j]$和$j$可以转移过来,发现这一位有一种一定可以一种一定不行,还有两种不确定。 考虑魔改$01trie$每一个节点$4$个儿子,但是这样$01trie$会$T$。 发现不确定的两种情况$a[j]$和$j
阅读全文
摘要:建出Trie树然后求出一个点子树中有多少笔名和真名。然后贪心匹配即可。 cpp include include include include include using namespace std; const int N=810000; int ans,n; char s[N]; struct
阅读全文
摘要:题意 给你一棵树,n个节点,n-1条边每条边i都有一个权值wi。定义任意两点间的权值为:这两点间的路径上的所有边的值的异或。比如a点和b点间有i,j,k三条边,那么ab两点间的权值为:wi^wj^wk。求这个最大的权值(最长异或路径)。 (n<=105) 题解 首先 边权可以放到点权上 然后我们可以
阅读全文
摘要:题意 N<=4*105 题解 看起来一副不可做的样子是吧,,,如果只看前半部分的式子呢?再看看后半部分...发现 前缀异或一下 trie树上查一查 后缀异或一下 trie树上查一查F[i]表示r1<=i的最大值 G[i]为l2>=i的最大值 两部分相加 搞定~
阅读全文
摘要:题意 给你n个串。问有多少长度为m的串使得这n个串至少在其中出现过一次。输出答案膜10007意义下的结果。 (n<=100,每个串的长度<=100) 题解 在AC自动机上跑DP。 用到一个容斥的思想,求至少出现过一次的次数就是,全部可能-一次都没出现的次数。 所以考虑dp,对于一个长度为i的串从i-
阅读全文
摘要:题意 题意:t个case(1<=t<=40),给你n个电话号码(电话号码长度<10)(1 ≤ n ≤ 10000),如果有电话号码是另一个电话号码的前缀,则称这个通讯录是不相容的,判断通讯录是否相容。 题解 把电话的结尾做标记,check的过程中,如果是电话号码的结尾并且trie树后面还有枝子,输出
阅读全文