
模板
文章平均质量分 56
模板,用于抄
SSL_DFT
这个作者很懒,什么都没留下…
展开
-
【洛谷 P3807】【模板】卢卡斯定理/Lucas 定理
【洛谷 P3807 】【模板】卢卡斯定理/Lucas 定理题目大意:求出 n,m,p Cn+mm mod pC_{n+m}^m \bmod pCn+mmmodp 的值思路:我们发现 n,m,p 是一个数量级的。一般如果 p 恒比 n,m 大的话我们可以 愉快的 这样搞:Cnm mod p=n!m!(n−m)! mod pC_{n}^m \bmod p=\frac {n!}{m!(n-m)!} \bmod pCnmmodp=m!(n−m)!n!modp那么对(n−m)!和m!(n-m)!和原创 2021-08-14 17:29:45 · 295 阅读 · 0 评论 -
主席树模板二:【洛谷 P3919】可持久化线段树 1(可持久化数组)
【洛谷 P3919】可持久化线段树 1(可持久化数组)题目大意:让你维护一个数组,维护两个操作:1.在数组的某个历史版本上修改一个数,修改后生成一个新的版本。2 查询数组某个历史版本上的某个位置上数的值,将该版本拷贝一份作为新的版本。思路:主席树的模板。关于主席树建主席树,询问,修改。每次在树中找到该历史版本,直接修改。询问时将该历史版本复制即可。代码:#include<iostream>#include<cstdio>#include<algori原创 2021-08-14 11:49:04 · 97 阅读 · 0 评论 -
主席树模板:【洛谷 P3384】
主席树模板:【洛谷 P3384】题目大意:给你一堆[l,r][l,r][l,r],问区间内的第 k 小数思路:详见这篇:代码:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<vector>#define r register#define rep(i,x,y) for(r原创 2021-08-13 12:02:49 · 101 阅读 · 0 评论 -
主席树学习笔记
主席树主席树,又称可持久化线段树,主要思想在线段树上加上一些历史节点去维护一些历史数据,实现对过去数据的查询。去盗了一张图途中橙色的节点维护的就是历史数据。主席树的用处引用大佬的一段话:主席树就是利用函数式编程的思想来使线段树支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗的增强版的线段树。其实它是一堆线段树的集合体。因为对于一个点的修改,它对整棵树的影响就是根节点到叶节点的这条长度为log nlog~nlog n的路径上的每一个节点,所以它每次修改原创 2021-08-13 11:59:24 · 152 阅读 · 0 评论 -
乘法逆元模板:【洛谷 P3811】
链接:【luogu P3811】这几天在做 ybtoj 的组合数学,经常要用到乘法逆元,就先去某谷上写了一会乘法逆元。乘法逆元的定义:若a∗x≡1(modb)a*x\equiv1 \pmod {b}a∗x≡1(modb),且a与b互质,那么我们就能定义: x 为 a 的逆元,记为a−1a^{-1}a−1,所以我们也可以称 x 为 a 在 mod ba~~在\bmod ba 在modb 意义下的倒数。求解方法:根据费马小定理,若p 为质数,a 是正整数,且原创 2021-08-11 20:58:23 · 167 阅读 · 0 评论 -
【ybt高效进阶4-4-1】求区间和
求区间和【ybt高效进阶4-4-1】题目大意:让你维护一个数组(序列),让你支持单点修改,区间查询的操作。思路:本题最舒服的解法是树状数组,但此处我们当成线段树的板子。直接上模板线段树。代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<stack>#include<原创 2021-07-09 09:04:49 · 133 阅读 · 0 评论 -
【ybt高效进阶4-2-4】区间修改区间查询 【树状数组模板】
区间修改区间查询 【ybt高效进阶4-2-4】题目大意:给定一个数组,让其支持区间修改,区间求和的操作。思路:树状数组+差分我们设ddd数组是aaa数组的差分数组,那么我们有a[i]=∑j=1id[j]a[i]=\sum\limits_{j=1}^{i}d[j]a[i]=j=1∑id[j]那么求区间的前缀和类比单点修改区间查询,用相减法,区间末值-区间开头。那么我们有:∑i=1na[i]=∑i=1n∑j=1id[j]\sum\limits_{i=1}^{n}a[i]=\sum\limits_原创 2021-07-08 20:17:07 · 112 阅读 · 0 评论 -
树状数组模板:单点修改区间查询
树状数组模板:单点修改区间查询代码:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cmath>#include<cstring>#define r register#define rep(i,x,y) for(r ll i=x;i<=y;i++)#define per(i,x,y) for(r ll i=原创 2021-07-08 08:19:33 · 97 阅读 · 0 评论 -
Tarjan 模板
Tarjan 模板:有向图缩点 【luogu P3387】对Tarjan的理解不是很深,这里贴出代码,方便以后运用(熟读并背诵)代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<stack>#include<queue>#include<vector>原创 2021-07-06 10:58:51 · 148 阅读 · 0 评论 -
负环 【luogu P3385】
判断负环【P3385 【模板】负环】题目大意给你一张n个点,m条边的有向图,让你判断图中有没有负环。思路:跑一遍SPFA,如果一个点入队次数超过了m次,则图中必有负环。代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<queue>#include<vector>原创 2021-07-05 20:59:26 · 81 阅读 · 0 评论 -
【SSL 1407】【树】哈夫曼树(一)
【SSL 1407】【树】哈夫曼树(一)题目描述:假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10。试为这8个字母设计哈夫曼编码。如果用二进制数表示这8个字母的编码方案.(请按照左子树根节点的权小于等于右子树根节点的权的次序构造)Input第一行为字母的个数n;第二行至第n+1行分别为各个字母在电文中出现的频率;Output按照中序遍历输出各个编码Sample Input8719263232110Sample Outp原创 2021-03-26 21:06:26 · 865 阅读 · 0 评论 -
LCA模板:洛谷P3379
LCA模板——洛谷P3379LCA 模板——洛谷P3379LCA模板——洛谷P3379原题:P3379 【模板】最近公共祖先(LCA)code:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<cmath>#include<map>#define r register原创 2021-01-22 10:06:13 · 160 阅读 · 1 评论