依旧是树状数组,今天这道是二维树状数组。
首先呢,我们最好把这题降一个维度研究研究,之后再推广到二维情况。讨论一下,对于闭区间 [0,n] ,我们有这样的操作:C(a,b)和Q(a,b)功能同题意。于是我们发现,一个节点的状态仅仅和它改变的次数有关。这样的话,我们就能得到一种把改变状态转化为统计前缀和的问题——我们将辅助数组c[a] 和 c[b+1] 分别加1。这样转变之后,当我们查询节点x的时候,我们发现当x∈(0,a)或者x∈(b,n)时,前缀和sum(x) 是偶数,当x∈[a,b] 时,它就是个奇数。
经过以上分析,我们将它推广至二维树状数组就得到了这样精巧的正解!