随笔分类 - 其它--分块和莫队
摘要:"传送门" 可以发现,$\binom{n}{m}\equiv 1(mod~2)$ 当且仅当 $m~and~n~=~m$ 即 $m$ 二进制下为 $n$ 的子集 那么可以直接写一个 $3^{18}$ 的枚举子集 $DP$ 但是还有一个 $6^9$ 的做法 把数字分成前 $9$ 位和后 $9$ 位 设
阅读全文
摘要:"传送门" Sol 分开考虑 $\varphi(ij)$ 中 $ij$ 的质因子 那么 $$\varphi(ij)=\frac{\varphi(i)\varphi(j)gcd(i,j)}{\varphi(gcd(i,j))}$$ 直接莫比乌斯反演 设 $g(x,i)=\sum_{j=1}^{x}\v
阅读全文
摘要:sto "$lxl$" orz 考虑莫队,每次移动端点,我们都要询问区间内和当前数字异或有 $k$ 个 $1$ 的数字个数 询问 $[l,r]$ 可以再次离线,拆成询问 $[1,l 1]$ 和 $[l,r]$ 然后考虑莫队要移动 $[l,r]$ 的 $l$ 到 $p$ 假设 $p l$ 那么相当于每
阅读全文
摘要:题面 "Bzoj" Sol 树上带修改莫队 求$mex$可以对数字也分块 数字大于$n$就设为$n+1$ 查询就找到那个不满的块,在块内找到$mex$ cpp include define RG register define IL inline define Fill(a, b) memset(a
阅读全文
摘要:题面 "UOJ" Sol 树上带修改莫队 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long
阅读全文
摘要:题意 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数。 n=40000,m=100000 Sol 树上莫队模板题 cpp include define RG register define IL inline define Fill(a, b) memset(a, b
阅读全文
摘要:做法 树分块,像王室联邦一样 然后怎么移动端点 蒯$VFK$的博客: 用S(v, u)代表 v到u的路径上的结点的集合。 用root来代表根结点,用lca(v, u)来代表v、u的最近公共祖先。 那么 S(v, u) = S(root, v) xor S(root, u) xor lca(v, u)
阅读全文
摘要:左右端点都要在块内比较!!! 再还要比较时间!!! 块的大小$n^\frac{2}{3}$
阅读全文
摘要:题面 "传送门" Sol 这题可能是假的 离线莫队搞一搞,把数字再分块搞一搞,就行了 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(a)) using namespace s
阅读全文
摘要:题面 "传送门" Sol 求区间逆序对个数,离线莫队搞,开树状数组统计,记得开$longlong$ ~~不然WA无数遍不知道为什么~~ include define IL inline define RG register define Fill(a, b) memset(a, b, sizeof(
阅读全文
摘要:Bitset简介 下面介绍C++ STL 中一个非常有用的东西: Bitset 类似于二进制状压,它可以把信息转化成一个01串存储起来 定义方法: 首先要 然后定义一个长度为len的bitset S 一些操作 bitset还支持&,^,|三个运算 b._Find_first() 找到第一个1的位置
阅读全文

浙公网安备 33010602011771号