![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
风吹落最后一片叶.
站在巨人的肩膀上
展开
-
poj 2299 求逆序数 树状数组/归并排序
POJ - 2299目录一、用树状数组求逆序数二、用归并排序求逆序数关于树状数组知识点的链接:树状数组一、用树状数组求逆序数1、对树状数组的理解现在算上比较明白树状数组是什么意思了,其实C[ ]数组就相当于线段树中的线段,C[ ]表示的是有几个叶子节点(A[ ])相加。按我的理解 我就把C[ ]数组理解成线段。 而add(int x,int num)函数叫...原创 2019-06-12 19:53:06 · 161 阅读 · 0 评论 -
poj 3321苹果树 树状数组+dfs 或 线段树
POJ - 3321目录一、用树状数组求解二、用线段树求解题意:给出一个苹果树,每个节点一开始都有苹果。有两种操作:C X,如果X点有苹果,则拿掉,如果没有,则新长出一个Q X,查询X点与它的所有后代分支一共有几个苹果分析:给我边的信息,用dfs为这棵树编号,并记录每个结点的管辖范围(即线段),查询该结点子树的和其实就是查询这个线段区间的和。即,就可以用线段树或...原创 2019-06-14 10:07:02 · 275 阅读 · 0 评论 -
POJ - 2155 Matrix 二维线段树 或二维树状数组
POJ - 2155目录一、用线段树求解二、用二维树状数组求解这道题整了好久orz,弄懂那一刻也是挺满足的。一维的区间上升到二维,维护一个矩阵。二维线段树其实就就是在第一位区间的每个节点下再建一颗线段树,表示第二维的区间。如果用线段树的话是不能用lazy标记的,刚开始做的时候不懂,用了下传标记,就是做不出。后来看了很多篇题解慢慢的懂了。。。可以用线段树或树状数组写...原创 2019-06-16 15:46:38 · 192 阅读 · 0 评论 -
HDU1166 敌兵布阵 简单线段树 或树状数组
HDU1166敌兵布阵最近线段树做的多了,简单线段树。树状数组就比较容易了。冲冲冲!!!下面我用树状数组写的。#include<iostream>#include<stdio.h>#include<cstring>#include<algorithm>#include<string>#include<...原创 2019-06-16 19:15:58 · 144 阅读 · 0 评论