模板
各种模板
枫茗、
HELLO,WORLD!
展开
-
线性筛模板
【代码】线性筛模板。原创 2022-09-16 11:22:56 · 297 阅读 · 1 评论 -
离散化模板
int a[N],n;//离散化的原始数组 int inv[N],num;typedef struct d_n{ int val,ki;}d_n;d_n dn[N];bool cmp(d_n x,d_n y){ return x.val<y.val;}void init(){ num=0;} void discretization(int a[],int inv[],d_n dn[]){ for(int i=1;i<=n;i++){ dn[i].val=a[i];.原创 2022-04-01 15:38:12 · 228 阅读 · 0 评论 -
ST表模板
#include <bits/stdc++.h>using namespace std;const int N=1e5+10;int LG2[N];int ma[N][20],mi[N][20];int n,m,a[N];//ma[i][j]表示以i为起点,向后延伸2^j的区间的最大值 int query_ma(int l,int r){ int k=LG2[r-l+1]; return max(ma[l][k],ma[r-(1<<k)+1][k]);}.原创 2022-04-12 17:18:37 · 63 阅读 · 0 评论 -
长链剖分模板
长链剖分长链剖应用的场景必须是与子树深度相关的,从这点上来讲它是dsu on tree的特例。解决的是某一结点对应子树深度为k的结点的某些信息(如和)与dsu on tree的不同: 1.L[](id[])数组含义仍不变,但R[]数组保存的是长链的最后一个结点对应的dfn (不再是子树最后一个结点对应的dfn),son[u]保存的是u对应链最长儿子的编号 2.不同长链的L,R都是没有任何交集的,也就是说它们用于统计的数据结构是独立的,而不像dsu on tree一样是公...原创 2022-04-12 14:48:19 · 562 阅读 · 0 评论 -
dsu on tree模板
dsu on tree解决某个子树的众数,种类数问题时间复杂度 nlog2n#include <bits/stdc++.h>using namespace std;const int N=1e5+10;int h[N],to[2*N],ne[2*N],cnt;int sz[N],dep[N],fa[N],son[N];int top[N],dfn,id[N],R[N],idx[N],skp;int num[N],col[N],sum,ans[N];//记录出现颜色种类.原创 2022-04-12 14:44:10 · 400 阅读 · 0 评论 -
基础线段树板子
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MOD=1e9+7;const int N=1e5+10;typedef struct Node{ int l,r; ll sum,lz;}Node;Node tr[N*4];void pushup(int u){ tr[u].sum=(tr[u<<1].sum+tr[u<<1|1...原创 2022-04-01 14:27:30 · 79 阅读 · 0 评论