随笔分类 -  ACM-数据结构

摘要:用主席树可以在线做,树状数组只能离线。 先放个主席树的。 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<queue> 5 #include<set> 6 #include<string> 7 #inc 阅读全文
posted @ 2020-08-20 20:40 Lovaer 阅读(674) 评论(0) 推荐(0)
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 #define pf printf 4 #define mem(a,b) memset(a,b,sizeof(a)) 5 #define scand(x) scanf("%llf",&x) 6 #d 阅读全文
posted @ 2020-06-13 21:13 Lovaer 阅读(221) 评论(0) 推荐(0)
摘要:毕生所学。 1 const int N = 2e5 + 10; 2 #define lson rt << 1 // == rt * 2 左儿子 3 #define rson rt << 1 | 1 // == rt * 2 + 1 右儿子 4 #define int_mid int mid = tr 阅读全文
posted @ 2020-02-09 14:07 Lovaer 阅读(640) 评论(1) 推荐(1)
摘要:入门级数据结构算法。复习一下,分别手写一个。 线段树版本(过了CF上的https://codeforces.com/contest/1291/problem/D): 1 #include<bits/stdc++.h> 2 #define f(i,a,b) for(int i=a;i<=b;i++) 阅读全文
posted @ 2020-02-08 11:39 Lovaer 阅读(877) 评论(0) 推荐(0)
摘要:原理很简单,利用差分知识做的,只能单点查询,在性能上优于线段树,但没有区间查询功能。 1 #include<bits/stdc++.h> 2 #define f(i,a,b) for(int i=a;i<=b;i++) 3 using namespace std; 4 5 const int N=5 阅读全文
posted @ 2020-02-07 11:38 Lovaer 阅读(178) 评论(0) 推荐(0)
摘要:树状数组真是一个神奇的东西,感觉和写线段树感觉有点像诶。 先来一个查询区间和的吧。 1 #define maxn 50005 2 int c[maxn], a[maxn]; 3 int n,t; 4 int Lowbit(int x) // 2^k 5 { 6 return x&(-x); 7 } 阅读全文
posted @ 2019-12-16 08:41 Lovaer 阅读(119) 评论(0) 推荐(2)
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e5+10; 4 int a[maxn]; 5 int sum[maxn<<2],exc[maxn<<2]; 6 void maintain(int k) 7 { 8 阅读全文
posted @ 2019-11-09 22:55 Lovaer 阅读(377) 评论(0) 推荐(0)