解题报告:线段树查询 II

原创 2015年07月09日 09:48:24

http://www.lintcode.com/zh-cn/problem/segment-tree-query-ii/

/**
 * Definition of SegmentTreeNode:
 * class SegmentTreeNode {
 * public:
 *     int start, end, count;
 *     SegmentTreeNode *left, *right;
 *     SegmentTreeNode(int start, int end, int count) {
 *         this->start = start;
 *         this->end = end;
 *         this->count = count;
 *         this->left = this->right = NULL;
 *     }
 * }
 */
class Solution {
public:
    /**
     *@param root, start, end: The root of segment tree and 
     *                         an segment / interval
     *@return: The count number in the interval [start, end] 
     */ 
   int query(SegmentTreeNode *root, int start, int end) {
	 	// write your code here
	 	if(!root)return 0;
	if (root->start>end)return 0;
		if (root->end < start)return 0;
		if (root->start > start)start = root->start;
		if (root->end < end)end = root->end;
		if (start == root->start&&end == root->end)return root->count;

		SegmentTreeNode *left = root->left, *right = root->right; 
		if (start >= right->start){//完全在右侧
			return query(right, start, end);
		}
		if (end <= left->end){//完全在左侧
			return query(left, start, end);
		}
		return query(left, start, left->end)+query(right,right->start,end);//在左右之间
	} 
};


lintcode-线段树查询II-247

/** * Definition of SegmentTreeNode: * class SegmentTreeNode { * public: * int start, end, c...

lintcode(247)线段树查询 II

描述: 对于一个数组,我们可以对其建立一棵 线段树, 每个结点存储一个额外的值 count 来代表这个结点所指代的数组区间内的元素个数. (数组中并不一定每个位置上都有元素) 实现...

线段树 查询删除 后序遍历 POJ2182 Lost Cows解题报告

线段树 查询删除 后序遍历 POJ2182 Lost Cows解题报告

POJ 4047 Garden (线段树 - 区间增减、区间查询) -- 解题报告

题面 Garden Time Limit: 1000MS Memory Limit: 65536K Description There are n flowerpots in...

二维线段树解析 (HDU1823)解题报告

学习二维线段树,需有一维线段树的基础。倘若对一维线段树还不是很了解的同学可以点开这个链接看看。 http://blog.csdn.net/jobsandczj/article/details/4780...

线段树成段更新操作及Lazy思想(POJ3468解题报告)

就直接那POJ上面的例题来说吧,http://poj.org/problem?id=3468。 此题题意很好懂:  给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C ...

线段树:Balanced Lineup(pku 3264)(解题报告)

Balanced Lineup            Time Limit: 5000MS    Memory Limit: 65536K  Total Submissions: 1166...

Hdu 1754 I Hate It 线段树 解题报告

很多学校流行一种比较的习惯。t对于每一次询问操作,
  • Hawo11
  • Hawo11
  • 2017年07月21日 19:44
  • 113

HDU 1166 线段树 解题报告

敌兵布阵Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tid...

线段树和单调队列优化DP---POJ2373解题报告

线段树和单调队列优化DP---POJ2373解题报告 分类: 算法和数据结构 DP 线段树 单调队列2012-08-11 12:14 284人阅读 评论(0) 收藏 举报 优化qu...
  • pi9nc
  • pi9nc
  • 2013年07月25日 10:34
  • 546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解题报告:线段树查询 II
举报原因:
原因补充:

(最多只允许输入30个字)