议题:线段树(Interval
Tree)分析:线段树是一种二叉搜索树,将一个大区间划分成单元区间,每个单元区间对应一个叶子节点;内部节点对应部分区间,如对于一个内部节点[a,
b]而言,其左子节点表示的区间为[a, (a+b)/2],其右子节点表示的区间为[1+(a+b)/2, b];对于区间长度...
分类:
其他好文 时间:
2014-05-29 01:33:28
阅读次数:
419
Calculate the FunctionTime Limit:2000MSMemory
Limit:65536KB64bit IO Format:%lld & %lluSubmitStatusAppoint
description:DescriptionYou are given a list ...
分类:
其他好文 时间:
2014-05-27 18:03:16
阅读次数:
394
线段树的单点更新,区域查询操作。
#include
#include
#include
#include
#include
using namespace std;
#define lmin 1
#define rmax n
#define lson l,(l+r)/2,rt<<1
#define rson (l+r)/2+1,r,rt<<1|1
#define root lmin,rmax,1...
分类:
其他好文 时间:
2014-05-26 05:25:50
阅读次数:
187
lmax[i]:i区间内,从左往右,连续的最大长度
rmax[i]:i区间内,从右往左,连续的最大长度
val[i]:i区间的长度。
#include
#include
#include
#include
#include
#include
using namespace std;
#define INF 99999999
#define lmin 1
#define rmax n
#def...
分类:
其他好文 时间:
2014-05-26 05:25:27
阅读次数:
289
区域查询操作。
ma[i]:i区间内的最大值
mi[i]:i区间内的最小值
#include
#include
#include
#include
#include
using namespace std;
#define INF 99999999
#define lmin 1
#define rmax n
#define lson l,(l+r)/2,rt<<1
#define rson ...
分类:
其他好文 时间:
2014-05-26 04:11:41
阅读次数:
202
出题:要求将一个有序整数数组转换成最小深度的Binary Search
Tree表示;分析:由于需要是最小深度,所以BST应保持平衡,左右节点数大致相当,并且BST中当前根节点大于所有其左子树中的元素,小于所有其右子树中的元素。对于排序数组而言,中间元素必然作为根节点,然后递归对由中间元素分割的左右...
分类:
其他好文 时间:
2014-05-26 03:49:39
阅读次数:
369
flag[i]:标记i这个区间的值。
val[i]:i这个区间的长度
#include
#include
#include
#include
#include
using namespace std;
#define INF 99999999
#define lmin 1
#define rmax n
#define lson l,(l+r)/2,rt<<1
#define rson (l+r...
分类:
其他好文 时间:
2014-05-26 03:37:19
阅读次数:
203
这道题可以用线段树或者树状数组,我在网上看有些大神竟然没用线段树和树状数组就把这道题搞出来了。。汗。。。线段树:线段树不能更新到叶子,否则超时。代码:
1 #include 2 #include 3 #include 4 #include 5 #define N 100005 6 using...
分类:
其他好文 时间:
2014-05-25 23:17:40
阅读次数:
287
题目链接:点击打开链接
题意:有两种操作,合并集合,查询第K大集合的元素个数。(总操作次数为2*10^5)
Treap模板(静态数组)
#include
#include
#include
#include
#include
const int maxNode = 500000 + 100;
const int inf = 0x3f3f3f3f;
struct Tr...
分类:
其他好文 时间:
2014-05-24 23:18:09
阅读次数:
522
线段树的区域更新,然后单点查询。
x1 x2 c:区域更新x1-x2为c。
全部染色之后,从0-8000依次查询每个点的颜色。然后存贮每一种颜色有几块。
#include
#include
#include
#include
#include
using namespace std;
#define lmin 0
#define rmax 8000
#define lson l,(l+r)/...
分类:
其他好文 时间:
2014-05-24 19:10:12
阅读次数:
221