「算法笔记」Min_25 筛】的更多相关文章

戳 这里(加了密码).虽然写的可能还算清楚,但还是不公开了吧 QwQ. 真的想看的 私信可能会考虑给密码 qwq.就放个板子: //LOJ 6053 简单的函数 f(p^c)=p xor c #include<bits/stdc++.h> #define int long long using namespace std; const int N=1e6+5,mod=1e9+7; int n,s,tot,val[N],id1[N],id2[N],x,cnt,p[N],sum[N],g[N],h…
前置姿势 魔力筛 其实不看也没关系 用途和限制 在\(\mathrm{O}(\frac{n^{0.75}}{\log n})\)的时间内求出一个积性函数的前缀和. 所求的函数\(\mathbf f(x)\)要满足以下条件: \(\mathbf f(p)\)是一个多项式,其中\(p\)是质数 \(\mathbf f(p^c)\)要能够快速计算. 算法流程 首先我们需要求出对于每一个\(\left\lfloor \frac ni\right\rfloor\)求出\(\sum_{i=1}^x [i \…
「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}​\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK}​\) 了,为了向 \(\text{AK}​\)王 学习,真诚的膜拜他,接受红太阳的指导,下午就学习了一下 \(\text{Min25}​\) 筛. 简介 如果 \(f(n)\) 是一个积性函数,且 \(f(n)\) 是一个关于 \(n\) 的简单多项式,并可以快速算出 \(f(p^k),\ p\…
一.简介 前置知识:多项式乘法与 FFT. FFT 涉及大量 double 类型数据操作和 \(\sin,\cos\) 运算,会产生误差.快速数论变换(Number Theoretic Transform,简称 NTT)在 FFT 的基础上,优化了常数及误差. NTT 其实就是把 FFT 中的单位根换成了原根. NTT 解决的是多项式乘法带模数的情况,可以说有些受模数的限制,多项式系数应为整数. 二.原根 与 NTT 「算法笔记」基础数论 2 中提及了原根的部分内容. 对于质数 \(p\),若…
一.树形 DP 基础 又是一篇鸽了好久的文章--以下面这道题为例,介绍一下树形 DP 的一般过程. POJ 2342 Anniversary party 题目大意:有一家公司要举行一个聚会,一共有 \(n\) 个员工,其中上下级的关系通过树形给出.每个人都不想与自己的直接上级同时参加聚会.每个员工都有一个欢乐度,举办聚会的你需要确定邀请的员工集合,使得它们的欢乐度之和最大,并且没有一个受邀的员工需要与他的直接上级共同参加聚会.\(n\leq 6000\). Solution: 考虑一个子树往上转…
一.定义 k-SAT(Satisfiability)问题的形式如下: 有 \(n\) 个 01 变量 \(x_1,x_2,\cdots,x_n\),另有 \(m\) 个变量取值需要满足的限制. 每个限制是一个 \(k\) 元组 \((x_{p_1},x_{p_2},\cdots,x_{p_k})\),满足 \(x_{p_1}\oplus x_{p_2}\oplus\cdots\oplus x_{p_k}=a\).其中 \(a\) 为 \(0\) 或 \(1\),\(\oplus\) 是某种二元…
一.前置概念 接下来的这些定义摘自 置换群 - OI Wiki. 1. 群 若集合 \(s\neq \varnothing\) 和 \(S\) 上的运算 \(\cdot\) 构成的代数结构 \((S,\cdot)\) 满足一下性质: 封闭性:\(\forall a,b\in S,a\cdot b\in S\). 结合律:\(\forall a,b,c\in S,(a\cdot b)\cdot c=a\cdot (b\cdot c)\). 单位元:\(\exists e\in S,\forall…
一.关于状压 dp 为了规避不确定性,我们将需要枚举的东西放入状态.当不确定性太多的时候,我们就需要将它们压进较少的维数内. 常见的状态: 天生二进制(开关.选与不选.是否出现--) 爆搜出状态,给它们编号 1. 状态跟某一个信息集合内的每一条都有关.(如 dp 套 dp) 2. 若干条精简而相互独立的信息压在一起处理. (如每个数字是否出现) 在使用状压 dp 的题目当中,往往能一眼看到一些小数据范围的量,切人点明确.而有些题,这样的量并不明显,需要更深人地分析题目性质才能找到. 二.预备知识…
一.引入 随机数据中,BST 一次操作的期望复杂度为 \(\mathcal{O}(\log n)\). 然而,BST 很容易退化,例如在 BST 中一次插入一个有序序列,将会得到一条链,平均每次操作的复杂度为 \(\mathcal{O}(n)\).我们称这种左右子树大小相差很大的 BST 是"不平衡"的. 有很多方法可以维持 BST 的平衡,从而产生了各种平衡树. Treap 就是常见平衡树中的一种. 二.简介 满足 BST 性质且中序遍历为相同序列的二叉查找树是不唯一的.这些二叉查找…
右转→https://www.cnblogs.com/mytqwqq/p/15057231.html 下面放个板子 (禁止莱莱白嫖板子) P3369 [模板]普通平衡树 #include<bits/stdc++.h> using namespace std; const int N=1e5+5; int n,op,x; struct Treap{ int rt,tot,lc[N],rc[N],val[N],sz[N],rnd[N]; void upd(int x){ sz[x]=sz[lc[x…