摘要:
考虑cdq分治 按 $y$ 坐标从小到大分为上下两个部分 现在统计下半部分对上半部分每一个点的贡献 那么下半部分能贡献的是一个斜率为负的类似于凸壳的形状 即 $x$ 单调递增,$y$ 单调递减,先按 $x$ 排序,再单调栈维护 $y$ 单调递减 但是这样有可能一些点被多算了,比如当前在上半部分的 $ 阅读全文
摘要:
记 $cnt_{i, 0/1/2}$ 为 $1$ 到 $i$ 中 J O I 出现次数 当 $(l,r]$ 能成为答案时 $cnt_{r,0} cnt_{l,0}=cnt_{r,1} cnt_{l,1}=cnt_{r,2} cnt_{l,2}$ 用map记录一下二元组 $(cnt_{i,0} cnt 阅读全文
摘要:
欧拉降幂与广义欧拉降幂 $$a^x = \begin{cases} a^{x \bmod \varphi(p)} && \gcd(a,p)=1 \\ a^x && \gcd(a,p)\neq 1 \wedge x define pb push_back define fi first define 阅读全文
摘要:
设 $f_i$ 为答案,$s_i$ 为前缀和 那么 $s_i = 2s_{i 1}+i^k$ 这个根据二项式系数可以矩阵快速幂 阅读全文
摘要:
感觉是sdoi2015序列统计的弱化版... 至少用一个质数就用全集减去只用合数解决 $dp_{i, j}$ 表示已经放了 $i$ 个数,当前和为 $j \pmod p$ 转移方程 $dp_{i, j} = \sum \limits_{x+y=j}dp_{i 1,x} \times c_y$ 看成生 阅读全文
摘要:
首先建出 $S$ 的AC自动机和fail树 要使T中每个字符串只被计算一次,那么就得在dfs序相邻的两个节点的lca处 1 阅读全文
摘要:
首先建出AC自动机,只要记录一下节点的父节点即可 然后AC自动机字符串匹配的过程是先把字符串放进trie树里,把每个节点拿出来,然后再从每个节点沿着fail走 也就是如果一个字符串 $s$ 出现在另一个字符串 $t$ 中,那么在fail树上 $s$ 是 $t$ 的祖先节点 离线询问,查询 $x$ 在 阅读全文
摘要:
如果使用回文树,节点 $u$ 的回文串和 $fail_u$ 的回文串中心不一样,因为回文树的 $fail$ 指针指向的是最长回文后缀,没法快速解决异或和 考虑魔改回文树,用马拉车来解决,扩展的时候用字符串哈希和哈希表来得到每个节点,连接fail指针,就做完了 阅读全文
摘要:
首先同BZOJ5052 $O(n \log n \log v)$ 求出所有点对 现在变成选出 $k$ 条不相交的线段使得权值最小 可用前缀min优化dp $O(nk)$ 解决 还是太慢,考虑wqs二分,大胆猜想 $dp_k$ 斜率单调,通过二分斜率限制一下取的线段条数即可 阅读全文