![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
小黑妹
穷则独善其身,达则兼济天下!
展开
-
hdu 排兵布阵
以前都是用线段树做的,感觉比较复杂。今天做了一下午的逆序数,都没做出来好伤心,结果学长而我说那是一道简单的树状数组的题目。今天继续着树状数组,选了到简单而求熟悉的排兵布阵。 1、概述 树状数组(binary indexed tree),是一种设计新颖的数组结构,它能够高效地获取数组中连续n个数的和。概括说,树状数组通常用于解决以下问题:数组{a}中的元素可能不断地被修改,怎样才能快速地获原创 2012-09-14 22:08:15 · 1827 阅读 · 0 评论 -
poj 3067
题意:顺序给两组平行的点依次编号1~N和1~M,给定K个线段在两组点之间,求线段的交点有多少个,同一个起点或终点不算相交.如图所示 典型的求逆序数的问题 你可能要问为什么交点的个数转化成了求逆序数呢? 别急首先想什么条件下两条线路相交 如上图,你会欣然的发现只有当线路a的左侧大于线路b的右侧,并且线路a的右侧小于线路b的右侧时,两条线路才能相交. (注意是大于或小于,两侧无论那一侧等于原创 2012-09-15 18:00:31 · 552 阅读 · 0 评论 -
树状数组求逆序数的模板
#include #include #include using namespace std; #define lowbit(x) x&(-x) int res[1000005] , tree[1000005] ; struct num{ int val,pos; }m[1000005]; bool cmp (num a, num b){ return a.val<b.val;原创 2012-10-06 21:11:11 · 1680 阅读 · 0 评论