![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 50
lamentropetion
---
展开
-
【字符串】ABC324E
然后因为拼起来之后要包含 t 这个字符串,隐隐约约会感觉到和前缀后缀子序列有关。满足ai + bj >= m有多少对 (i, j),这个直接值域统计一下即可。统计两个指针的方案数一定是枚举一个,统计另一个。退役啦,接下来的博客全是图一乐啦。原创 2023-12-14 00:45:15 · 676 阅读 · 0 评论 -
【trie树】CF Edu12 E
如果 k 的第 j 位是1,那么沿着走就行,否则对 (k >> j & 1) ^ 1的部分计数,然后继续沿着走。最后的res += cnt[p]是对 = k 的部分计数。先去对 > k 的部分计数,再对 = k 的部分计数。对于每一个 i,ai ^ x = k,对 x 计数。区间异或转化成前缀异或,然后枚举 i。先建一棵字典树,然后在字典树上计数。原创 2023-09-05 23:57:38 · 153 阅读 · 0 评论 -
【枚举+trie+dfs】CF514 C
注意到字符集只有3,因此如果发现有不同的字符,去枚举新的字符。对于每次询问,都去字典树上dfs。其实是trie上dfs的板题。先把字符串插入到字典树中。原创 2023-08-04 11:19:09 · 496 阅读 · 0 评论 -
【枚举+01 trie树】CF1658 D2
给定一个区间[l, r]和r - l + 1个数,问是否存在一个数 x ,使得这些数异或上 x 之后为[l, r]的一个排列。如果存在 x ,使得这些数的对 x 的最大异或为 r,最小异或为 l,那么就一定满足条件(因为这些数一定不同)但是是哪个 ai 异或了 x 变成 l不确定,所以可以转化成枚举 ai。首先一个结论:若两个数异或 x 不同,那么这两个数本来一定不同。因为这些数异或 x 之后是一个排列,因此这些数原来就不同。这种有关一个集合和异或操作的,都可以试试字典树。这样 x = ai ^ l。原创 2023-08-04 10:17:19 · 127 阅读 · 0 评论 -
【01trie】CF1851F
id[p] 表示 idx 为 p 的01串(数字)对应的下标值。ai xor x 和 aj xor x 都必须为1。因此可以转换为 ai 和 aj 最小异或对问题。p是 ai 的 01串 ,x应与 ai 相反。首先最大异或对可以用01trie解决。改一下01trie的板子即可。主要修改部分在query上。原创 2023-07-26 14:55:15 · 81 阅读 · 0 评论 -
子串查询(子序列查询)
对于s,预处理出每个字符在i位置后缀第一个出现j字母的位置。然后对于一个询问串,去跳着找下一个在原串中匹配的字符。如果没找到就是NO,全部匹配了就是YES。原创 2023-03-31 18:08:30 · 177 阅读 · 0 评论 -
trie树入门
trie树原创 2023-01-10 00:42:00 · 309 阅读 · 0 评论