
数据结构模板
maze_illusion
这个作者很懒,什么都没留下…
展开
-
树链剖分边权版
int tol,head[maxn];struct edge{ int to,next;}es[maxm];void addedge( int u , int v ){ es[tol].to = v; es[tol].next = head[u]; head[u] = tol++;}int top[maxn],fa[maxn],dep[maxn],s...原创 2018-08-30 20:22:33 · 256 阅读 · 0 评论 -
主席树模板
const int maxn = 100010;const int maxm = maxn*30;int n,q,m,tot;int a[maxn],b[maxn];int T[maxn],lson[maxm],rson[maxm],c[maxm];int Build( int l , int r ){ int root = tot++; c[root] = 0; ...原创 2018-08-31 18:07:19 · 202 阅读 · 0 评论 -
划分树模板
int tree[20][maxn],toleft[20][maxn],sorted[maxn];void Build( int l , int r , int dep ){ if ( l==r ) return; int mid = (l+r)>>1; int lpos = l; int rpos = mid+1; for ( int i...原创 2018-08-30 10:20:13 · 191 阅读 · 0 评论 -
一维RMQ模板
void Rmq_init( int n , int b[] ){ mm[0] = -1; for ( int i=1 ; i<=n ; i++ ) { mm[i] = ((i&(i-1))==0)?mm[i-1]+1:mm[i-1]; dp[i][0] = b[i]; } for ( int j=1 ; j...原创 2018-08-30 10:50:11 · 271 阅读 · 0 评论 -
二维RMQ模板
int val[maxn][maxn],dp[maxn][maxn][9][9],mm[maxn];void Rmq_init( int n , int m ){ mm[0] = -1; for ( int i=1 ; i<maxn ; i++ ) mm[i] = ((i&(i-1))==0)?mm[i-1]+1:mm[i-1]; for...原创 2018-08-30 11:29:38 · 267 阅读 · 0 评论 -
动态区间第k小主席树模板
const int maxn = 60010;const int maxm = maxn*40;int n,q,m,tot;int a[maxn],b[maxn];int T[maxn],lson[maxm],rson[maxm],c[maxm];int S[maxn],use[maxn];int Build( int l , int r ){ int root = tot...原创 2018-09-02 10:49:50 · 355 阅读 · 0 评论 -
单调队列模板
struct Queue{ int q[maxn]; int qh,qt; void Init() { memset ( q , 0 , sizeof(q) ); qh = 1; qt = 0; } void Push( int x ) { q[++qt] = x; ...原创 2018-07-17 19:56:12 · 157 阅读 · 0 评论 -
单调队列模板(多队列共同进行)
queue<int>q[maxn];struct Queue{ priority_queue< int,vector<int>,less<int> >A,B; void Push( int x ){A.push(x);} void Pop( int x ){B.push(x);} int Top() {...原创 2018-07-28 16:56:26 · 253 阅读 · 0 评论 -
树链剖分点权版
int tol,head[maxn];struct edge{ int to,next;}es[maxm];void addedge( int u , int v ){ es[tol].to = v; es[tol].next = head[u]; head[u] = tol++;}int top[maxn],fa[maxn],dep[maxn],s...原创 2018-08-30 15:00:52 · 183 阅读 · 0 评论