摘要: 这题的要求和树状数组的使用方法恰好相反,改变的是一个区间,查询的反而是一个点。我们先看一维的情况。 首先定义 Up(a)={a1=a,a2=a1+lowbit(a1),a3=a2+lowbit(a2) ... } Down(a)={a1=a,a2=a1-lowbit(a1),a3=a2-lowbit(a2) ... } 为了方便讨论,只说明初始化后的第一次“C a b”和“Q c”操作: 对于命令... 阅读全文
posted @ 2008-10-29 23:33 Beetlebum 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 思路: 对结点重编号,使得每棵子树内的结点的编号连续,便可将问题转化为树状数组求区间和, 用后序遍历对整棵树进行重编号能满足要求。 除了要在每个结点处记录新编号tag外,还要记录该结点对应的子树的最小结点编号mn,对 于每个结点x,其苹果个数为sum(x.tag)-sum(x.mn-1)。 Code highlighting produced by Actipro CodeHighlighte... 阅读全文
posted @ 2008-10-29 16:41 Beetlebum 阅读(588) 评论(0) 推荐(0) 编辑