摘要: POJ 2104为例【经典划分树问题】思想:利用快速排序思想,建树时将区间内的值与区间中值相比,小于则放入左子树,大于则放入右子树,如果相等则放入左子树直到放满区间一半。查询时,在建树过程中利用leftsum[p][i]数组保存有多少个数划分到第p层,第i个位置的左边。每次查询计算... 阅读全文
posted @ 2016-02-13 22:34 zhuyujiang 阅读(182) 评论(0) 推荐(0)
摘要: 完全不知道该怎么用,看书稍微懂了点。题意:给定序列及操作,求区间和。分析:树状数组可以高效的求出连续一段元素之和或更新单个元素的值。但是无法高效的给某一个区间的所有元素同时加个值。 不能直接用树状数组求,就处理一下。用两个树状数组维护两个数据,一个维护前i项和,一个维护增加的值。设... 阅读全文
posted @ 2016-02-13 12:21 zhuyujiang 阅读(132) 评论(0) 推荐(0)
摘要: 题意:给定序列及操作,求区间和。分析:线段树,每个节点维护两个数据:该区间每个元素所加的值该区间元素和可以分为“路过”该区间和“完全覆盖”该区间考虑。代码:#include#include#includeusing namespace std;typedef long long l... 阅读全文
posted @ 2016-02-13 11:13 zhuyujiang 阅读(120) 评论(0) 推荐(0)