
数据结构
Naruto_____
这个作者很懒,什么都没留下…
展开
-
poj 2104 (主席树)
主席树模板题#include using namespace std;const int MAXN = 100010;const int MAXM = MAXN * 25;int n, m, q, dex;int a[MAXN], sorted[MAXN], root[MAXN];int T[MAXM], lson[MAXM], rson[MAXM];void Init()原创 2015-11-07 15:46:11 · 447 阅读 · 0 评论 -
hdu 2665(划分树)
划分树模板题#include #include #include #include #include using namespace std;const int MAXN = 100010;int toleft[20][MAXN], val[20][MAXN];int sorted[MAXN];void BuildT(int tl, int tr, int i) {原创 2015-10-22 15:57:19 · 462 阅读 · 0 评论 -
线段树
void build_tree(int left, int right, int i) { if(left == right) { int val; scanf("%d", &val); n[i].nmax = n[i].nmin = val; return ; } int mid = (left + right) / 2; build_tree(left, mid, i原创 2014-11-14 21:24:01 · 419 阅读 · 0 评论 -
hdu 4417(划分树)
将h值与划分树的中间值作比较,不小于中间值的话,答案加上查询区间进入左子树的个数并进入右子树,否则直接进入左子树。(注:查询区间可能为空)#include #include #include #include using namespace std;const int MAXN = 100010;int val[20][MAXN], toleft[20][MAXN];int原创 2015-10-24 14:54:50 · 564 阅读 · 0 评论 -
zoj 2112 (主席树)
Orz......#include using namespace std;const int MAXN = 60010;const int MAXQ = 10010;const int MAXM = 2500010;int n, m, dex;int a[MAXN], sorted[MAXN], root[MAXN], lower[MAXN], temp[MAXN];int原创 2015-11-09 21:36:05 · 712 阅读 · 0 评论 -
zoj 2859(二维线段树)
给一个不作更改的矩阵,多次查询子矩阵的最小值#include #include #include #include using namespace std;const int Max = 305;int n;struct Treex { int treey[Max << 2]; void Buildy(int l, int r, int i) { if(l == r)原创 2015-09-22 20:14:28 · 648 阅读 · 0 评论 -
hdu 5465(二维树状数组)
二维bit + 尼姆博奕#include #include #include #define Max 510using namespace std;int n, m;int a[Max][Max];int c[Max][Max];int lowbit(int x) { return x & (-x);}int sum(int x, int y) { i原创 2015-09-22 20:32:21 · 401 阅读 · 0 评论