数据结构
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 · 391 阅读 · 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 · 426 阅读 · 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 · 391 阅读 · 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 · 506 阅读 · 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 · 646 阅读 · 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 · 589 阅读 · 0 评论 -
hdu 5465(二维树状数组)
二维bit + 尼姆博奕 #include #include #include #define Max 510 using 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 · 365 阅读 · 0 评论