图论——树状数组
JeremyGJY
然而并没有什么好说的
展开
-
【动态规划】【树状数组】[USACO2011 FEB]奶牛抗议
这道题目的关键就是想到用树状数组对DP进行优化,首先令f(i)f(i)表示分到第i个的时候子段和大于等于0的时候出现的最大的种树, 那么可以发现f(i)=∑f(j)|sum(i)−sum(j)≥0f(i)=\sum f(j) | sum(i)-sum(j)\ge 0那么后面的部分可以变成sum(i)≥sum(j)sum(i)\ge sum(j)那么就可以使用树状数组进行维护,下标就是sum(j)su原创 2015-07-17 22:10:07 · 766 阅读 · 0 评论 -
【树状数组】[COCI]Task HONI
树状数组首先按照a排个序,然后可以发现如果当前的这个大于前一个的那么把当前vector中的b全部加到树状数组里面,否则就把当前这个加进vector里面,如果i的两个都小于,那么i的排名最后一定小于当前的(这个树状数组搞就可以了),如果i的一个大于当前的,那么最后他的排名一定在当前的之前(不加),如果i的a或者b等于当前的非零的数字并且另一个等于0那么相差就刚好等于分数的最大值,那么最多就是和当前的平原创 2015-09-07 14:03:42 · 616 阅读 · 0 评论 -
【可持久化线段树】【树状数组】[ZOJ 2112]Dynamic Rankings
题目大意:带修改操作的区间第K大 首先可以发现因为只有在需要使用的时候才会新建节点那么最多有nlognnlogn个节点,那么只需要在更新的时候带上值域就可以不用进行离散化了,每一次就是和普通的树状数组那么进行更新,因为求得是区间的和(大概就是可持久化的原理)但是用树状数组来做每一个更新的时候就有了求前缀和的范围,每一次加起来就好了,其实和普通的树状数组差不多的。(注意是多组数据)#include原创 2015-11-27 14:01:24 · 888 阅读 · 1 评论 -
【可持久化线段树】【主席树】[BZOJ 3295]动态逆序对
对于序列A,它的逆序对数定义为满足ij,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。 这里可以发现对于每一个数字可以有两种做法第一种就是先建好树然后每一次删除询问在他之前有多少个比他大的,询问有多少个比他小的在他之后,然后减去(不推荐该做法) 另一种做法就是首先预处理出来左边有多少个比他大原创 2016-01-24 15:18:21 · 732 阅读 · 0 评论