
模板
文章平均质量分 68
QuantAsk
蒟蒻OIer
展开
-
P6466-分散层叠算法(Fractional Cascading)【模板】
正题题目链接:https://www.luogu.com.cn/problem/P6466题目大意给出kkk个长度为nnn的有序序列,qqq次询问给出xxx,求所有序列中xxx的后继的异或和。强制在线1≤k≤100,1≤n≤104,1≤q≤5×1051\leq k\leq 100,1\leq n\leq 10^4,1\leq q\leq 5\times 10^51≤k≤100,1≤n≤104,1≤q≤5×105解题思路一个很神奇的算法,考虑如果我们将一个序列的偶数位提取出来,我们得到在这些原创 2022-03-17 07:54:36 · 306 阅读 · 0 评论 -
P3369-[模板]普通平衡树【无旋Treap】
正题题目链接:https://www.luogu.com.cn/problem/P3369题目大意一个空可重集,要求支持插入一个数xxx删除一个数xxx询问一个数xxx的排名询问排名第xxx的数字询问xxx的前驱询问xxx的后继1≤n≤105,1≤∣x∣≤1071\leq n\leq 10^5,1\leq |x|\leq 10^71≤n≤105,1≤∣x∣≤107解题思路拖了两年的FHQ终于还是写了(还有二逼平衡树拖到现在还没写)。看的是别人博客学的:https://www原创 2022-01-09 18:32:57 · 372 阅读 · 0 评论 -
P6242-[模板]线段树3【吉司机线段树】
正题题目链接:https://www.luogu.com.cn/problem/P6242题目大意给出一个长度为nnn的序列aaa,mmm次要求支持操作区间加上一个值kkk区间所有aia_iai变为min{ai,k}min\{a_i,k\}min{ai,k}区间求和区间求最大值区间求历史最大值1≤n,q≤5×1051\leq n,q\leq 5\times 10^51≤n,q≤5×105解题思路额让我们来看看都有些什么操作,区间加权,区间取min…欸好像到区间取min就不原创 2021-12-18 10:30:15 · 189 阅读 · 0 评论 -
P4783-[模板]矩阵求逆
正题题目链接:https://www.luogu.com.cn/problem/P4783题目大意给出一个矩阵,求它的逆矩阵。1≤n≤4001\leq n\leq 4001≤n≤400解题思路记给出矩阵PPP,记单位矩阵EEE。P×P−1=E⇒P×(E×P−1)=EP\times P^{-1}=E\Rightarrow P\times (E\times P^{-1})=EP×P−1=E⇒P×(E×P−1)=E虽然看上去上面那个式子是废话,但是这是一个提示。因为PPP进行初等变化变为EE原创 2021-08-20 11:25:45 · 177 阅读 · 0 评论 -
P4716-[模板]最小树形图
正题题目链接:https://www.luogu.com.cn/problem/P4716题目大意给出nnn个点mmm条边的一张有向图,求以rrr为根的最小外向树。1≤n≤100,1≤m≤1041\leq n\leq 100,1\leq m\leq 10^41≤n≤100,1≤m≤104解题思路考虑一种贪心,对于每个点我们先选出一个连入的最小的边权,但是这样可能产生环。考虑暴力将环去掉,我们枚举所有的环,然后将环缩成一个点,之后然后每个环外的边都减去入点所连接边的权值(可撤销贪心)。然后原创 2021-08-20 08:38:58 · 131 阅读 · 0 评论 -
P5494-[模板]线段树分裂
正题题目链接:https://www.luogu.com.cn/problem/P5494题目大意给出一个可重集合要求支持将集合ppp中在[l,r][l,r][l,r]的数放到一个新的集合中将集合ttt的所有数放入集合ppp中在集合ppp中放入xxx个ppp查询集合ppp中在[l,r][l,r][l,r]区间的数查询集合ppp中第kkk小的数1≤n,m≤2×1051\leq n,m\leq 2\times 10^51≤n,m≤2×105解题思路考虑怎么分裂,就照着一个位置pos原创 2021-08-10 19:14:00 · 176 阅读 · 0 评论 -
P5056-[模板]插头dp
正题题目链接:https://www.luogu.com.cn/problem/P5056题目大意n∗mn*mn∗m的网格,求有多少条回路可以铺满整个棋盘。解题思路插头dpdpdp的,写法是按照题解上的写法。状态用的是括号匹配,然后用了哈希+邻接表(挂表)还有滚动数组优化空间然后可以看题解学code#include<cstdio>#include<cstring>#include<algorithm>using namespace std;原创 2021-06-23 07:47:00 · 218 阅读 · 0 评论 -
[模板]多项式全家桶小记(求逆,开根,ln,exp)
前言这里的全家桶目前只包括了ln,exp,sqrtln,exp,sqrtln,exp,sqrt。还有一些类似于带余数模,快速幂之类用的比较少的有时间再更,NTTNTTNTT这种前置知识这里不多说。还有一些基本的导数和微积分内容要了解,建议不懂的可以先去翻翻高二数学书。之后多项式算法基本是一环扣一环的,所以前面的看不懂对于后面的理解会造成很大影响。本博客涉及内容偏浅Tips这里是一些我个人的模板书写习惯习惯相关的问题:默认将读入的nnn变为222的整数次幂形式,目前为止这样的做法都不会影响正原创 2021-01-25 10:06:42 · 318 阅读 · 0 评论 -
P4718-[模板]Pollard-Rho算法
正题题目链接:https://www.luogu.com.cn/problem/P4718题目大意给出一个数nnn,如果它是质数则输出PrimePrimePrime,否则输出它的最大质因子。解题思路Pollard-Rho\text{Pollard-Rho}Pollard-Rho算法的前置知识是Miller-Rabin\text{Miller-Rabin}Miller-Rabin。在使用Miller-Rabin\text{Miller-Rabin}Miller-Rabin判掉质数之后,Polla原创 2021-01-08 19:53:02 · 331 阅读 · 0 评论 -
Loj#143-[模板]质数判定【Miller-Rabin】
正题题目链接:https://loj.ac/p/143题目大意给出一个数ppp,让你判定是否为质数。解题思路Miller−RabinMiller-RabinMiller−Rabin是一种基于费马小定理和二次探测定理的具有较高正确性的高效质数判定算法。首先讲一下两个定理费马小定理:gcd(a,p)=1 ⇒ ap−1=1(mod p)gcd(a,p)=1\ \ \ \Rightarrow\ \ \ a^{p-1}=原创 2021-01-08 19:00:28 · 299 阅读 · 0 评论 -
P6091-[模板]原根
正题题目链接:https://www.luogu.com.cn/problem/P6091题目大意给出一个数ppp,求出它的所有在[0,p][0,p][0,p]的原根。解题思路原根的定义,δp(a)\delta_p(a)δp(a)表示一个最小的nnn使得an≡1(mod p)a^n\equiv1(mod\ p)an≡1(mod p),若gcd(a,p)=1gcd(a,p)=1gcd(a,p)=1且δp(a)=φ(p)\delta_p(a)=\varphi(p)δp(a)原创 2021-01-07 20:41:58 · 293 阅读 · 0 评论 -
P4717-[模板]快速莫比乌斯/沃尔什变换(FMT/FWT)
正题题目链接:https://www.luogu.com.cn/problem/P4717题目大意给出两个长度为2n2^n2n的数列A,BA,BA,B求Cn=∑i or j=nAiBjC_{n}=\sum_{i\ or\ j=n}A_iB_jCn=i or j=n∑AiBjCn=∑i and j=nAiBjC_{n}=\sum_{i\ and\ j=n}A_iB_jCn=i and j=n∑AiBj原创 2021-01-05 20:10:34 · 306 阅读 · 1 评论 -
P5906-[模板]回滚莫队&不删除莫队
正题题目链接:https://www.luogu.com.cn/problem/P5906题目大意nnn个数字,mmm个询问[l,r][l,r][l,r]中最远的相同数字对。解题思路我们考虑如何用莫队维护,对于一个询问[l,r][l,r][l,r],我们先按照lll的块排再按照rrr排,定义lll块的右端为midmidmid,那么我们可以先处理[mid,r][mid,r][mid,r]的范围,然后[l,mid][l,mid][l,mid]暴力处理,因为rrr是递增的,所以时间复杂度为O(nn)原创 2020-11-04 18:18:25 · 273 阅读 · 1 评论 -
jzoj1282-资源勘探【统计】
正题题目链接:https://gmoj.net/senior/#contest/show/3146/2题目大意一个以左上角为端点的子矩形价值定义为区间内唯一的数的数量,求所有子矩形的权值和。解题思路考虑每个数字的贡献,对于相同的数字,产生贡献的右下角一定是一个若干个矩形。我们对于每个数存一个hi,li,rih_i,l_i,r_ihi,li,ri表示上一个有贡献的点的xxx坐标,在li∼ril_i\sim r_ili∼ri范围可以产生贡献。然后统计即可,时间复杂度O(nm)O(nm)原创 2020-10-22 16:46:29 · 210 阅读 · 0 评论 -
P5491-[模板]二次剩余
正题题目链接:https://www.luogu.com.cn/problem/P5491题目大意求解x2=N(mod P)x^2=N(mod\ \ P)x2=N(mod P)解题思路若aaa在模ppp意义下可以开根那么aaa就是ppp的二次剩余,定义(ap)={1(a是p的二次剩余)−1(a是p的二次非剩余)0(p∣a)\binom{a}{p}=\left\{\begin{matrix}1(a是p的二次剩余)\\-1(a是p的二次非剩余)\\0(原创 2020-10-21 09:42:10 · 251 阅读 · 0 评论 -
P4782-[模板]2-SAT问题【tarjan】
正题题目链接:https://www.luogu.com.cn/problem/P4782题目大意给若干个条件限定为xi为a或xj为bx_i为a或x_j为bxi为a或xj为b。求构造一个序列xxx满足所有条件解题思路我们对于每个xix_ixi构造两个点分别表示xix_ixi为0/10/10/1。然后就开始对能够确定的条件关系连边。那么显然有在一个强连通分量里的真假一定相等。也就是如果对于一个xix_ixi的两个点都在一个强连通里,那么就无解了。而确定之后我们只需要根据拓扑序大小来确原创 2020-10-07 08:28:57 · 166 阅读 · 0 评论 -
P4721-[模板]分治FFT【NTT,分治】
正题题目链接:https://www.luogu.com.cn/problem/P4721题目大意给出序列ggg,然后f0=1f_0=1f0=1fi=∑j=1ifi−jgjf_{i}=\sum_{j=1}^if_{i-j}g_jfi=j=1∑ifi−jgj求序列fff解题思路使用分治后用NTTNTTNTT计算前区间对后区间的贡献即可。时间复杂度O(nlog2n)O(...原创 2020-02-29 22:27:36 · 393 阅读 · 0 评论 -
P4781-[模板]拉格朗日插值
正题题目链接:https://www.luogu.com.cn/problem/P4781题目大意给出nnn个点确定一个多项式y=f(x)y=f(x)y=f(x),求f(k)f(k)f(k)的值解题思路拉格朗日插值:f(k)=∑i=1nyi∏i≠jk−xjxi−xjf(k)=\sum_{i=1}^ny_i\prod_{i\neq j}\frac{k-x_j}{x_i-x_j}f(k...原创 2020-02-12 16:16:50 · 325 阅读 · 0 评论 -
P5496-[模板]回文自动机【PAM】
正题题目链接:https://www.luogu.com.cn/problem/P5496题目大意长度为nnn的字符串,求每个字符串作为结尾有多少个回文串。解题思路PAMPAMPAM。下面是个人对PAMPAMPAM的一些理解(不是讲解):每个节点表示一个回文串,就是根到其的路径上的字符为一半。为了方便表示长度为奇数的和偶数的,这里用了两个根节点。一个奇数根长度为−1-1−1,...原创 2020-01-26 15:17:25 · 305 阅读 · 0 评论 -
P3809-[模板]后缀排序(SA)
正题题目链接:https://www.luogu.com.cn/problem/P3809题目大意长度为nnn的字符串,求它的字符数组(后缀排序后排名为iii的在哪个位置)。解题思路大概思路就是倍增排序,先排每个后缀的第一个字符,然后是两个,然后是四个,以此类推。为什么可以这样?我们由kkk的排列拓展到k∗2k*2k∗2时我们将其分为双关键字排序,第iii位的第一关键字是第iii位...原创 2020-01-23 17:04:45 · 271 阅读 · 1 评论 -
P3377-[模板]左偏树(可并堆)
正题题目链接:https://www.luogu.com.cn/problem/P3377题目大意开始时nnn个只有一个数的集合,要求支持合并两个集合查询一个集合中的最小值并删除codecodecode#include<cstdio>#include<cstring>#include<algorithm>using namespace...原创 2020-01-20 16:34:39 · 329 阅读 · 0 评论 -
bzoj3732-Network【Kruskal重构树模板】
正题题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3732题目大意一张图,每次询问两个点,求这两个点之间路径的最大值的最小是多少。解题思路构造一颗KruskalKruskalKruskal重构树然后就是模板了。codecodecode#include<cstdio>#include<cstring...原创 2020-01-05 12:25:44 · 208 阅读 · 0 评论 -
P3810-[模板]三维偏序(陌上花开)【CDQ分治,树状数组】
正题题目链接:https://www.luogu.com.cn/problem/P3810题目大意nnn个三元组(a,b,c)(a,b,c)(a,b,c),f(i)=∑i=1n,j≠i[aj≤ai&bj≤bi&bj≤bi]f(i)=\sum_{i=1}^{n,j\neq i}[a_j\leq a_i\&b_j\leq b_i\&b_j\leq b_i]f(i...原创 2020-01-01 11:39:22 · 256 阅读 · 0 评论 -
亿些模板【数论数学】
文章目录前言数论数学模板GCDexgcd快速幂线性推逆元逆元求组合数矩阵乘法线性筛素数-欧式筛线性筛素数-线性筛线性筛欧拉-欧式线性求欧拉龟速乘dp背包LIS最长公共子序列前言因为老是懒得打模板的时候老是扣不到自己的标(因为之前的都打得太丑了),所以导致我十分的不爽。便打算开一个模板库。会不断更新的数论数学模板(某些附有证明)GCD我们设d=gcd(a,b)我们设d=gcd(a,b)...原创 2019-01-30 21:48:44 · 492 阅读 · 0 评论 -
亿些模板【图论】
前言因为老是懒得打模板的时候老是扣不到自己的标(因为之前的都打得太丑了),所以导致我十分的不爽。便打算开一个模板库。正题最短路-Floyd for(int k=1;k&amp;amp;amp;amp;lt;=n;k++) for(int i=1;i&amp;amp;amp;amp;lt;=n;i++) for(int j=1;j&amp;amp;amp;amp;lt;=n;j++) if(原创 2019-01-30 20:36:51 · 543 阅读 · 4 评论 -
亿些模板【数据结构】
文章目录前言数据结构模板并查集带权并查集堆hash表RMQ线段树树状数组树状数组区间修改版分块主席树有旋TreapSpaly替罪羊树文艺平衡树-Spaly点分治前言因为老是懒得打模板的时候老是扣不到自己的标(因为之前的都打得太丑了),所以导致我十分的不爽。便打算开一个模板库。会不断更新的数据结构模板并查集int find(int x)//并查集{return f[x]==x?x:(f...原创 2019-01-30 21:32:46 · 444 阅读 · 0 评论