- 博客(3)
- 收藏
- 关注
原创 2021-05-21
Codeforces Round #721 (Div. 2) A 给定一个数n,求不超过n的最大的数k使得n(&-1)&(n-2)&…&(k)=0 将n用二进制表示,例如6=110,7=111; 对于n = 6,(110)中,取最高位的1,得到一个数4(100)(最高位为1后面都为0),将其-1得3(11)为,即为答案k。(全部都是1) 显然,要使最后结果全部为0,至少存在一个数,在n的最高位为1的那位为0。 101011 011111 所以取n的最高位1,得到的数(10.
2021-05-21 14:50:13
265
1
原创 AC自动机
AC自动机 应用:一个字符串s,多个字符串p 求每个p在s中出现的次数 实现 将每个p塞进字典树中,构造AC自动机,用s进行匹配 朴素算法 1.枚举s中每一对i和j(0<i<=j<s.size()),对每个p进行匹配,计算每一对i和j对答案的贡献 用AC自动机改进朴素算法 AC自动机有两种边,字典树的边和fail指针 fail指针 如图j的fail指针是j1而不是j2 因为从i到j,ab是cab的最长公共后缀,而b不是 fail指针指向的是当前状态的最长公共后缀 用图直观的感受一下匹配过
2021-04-27 00:18:12
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人