数据结构——树状数组(BIT)
文章平均质量分 83
XDU_Skyline
Everything is over, everything is just beginning.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
例题3.7 乒乓比赛 UVa1428
1.题目描述:点击打开链接 2.解题思路:根据题意,考虑第i个人当裁判的情况,假设第1个人到第i-1个人中,有num1个人的经验值小于A[i],那么就有i-1-num1个人的经验值大于A[i];同理,假设第i+1个人到第n个人之见有num2个人的经验值小于A[i],那么就有n-i-num2个人的经验值大于A[i]。因此,根据乘法原理,第i个人当裁判时有num1*(i-1-num1)+num2*(原创 2015-03-19 12:19:14 · 860 阅读 · 0 评论 -
#301 (div.2) E. Infinite Inversions
1.题目描述:点击打开链接 2.解题思路:本题要求找出经过若干次交换后的数组中逆序对的个数。可以利用树状数组(BIT)解决。计数时可以分为两部分来分别统计。第一部分是统计位置i右边的所有不在原位置的元素中,小于rk[i]的个数。注意:这一部分统计的都是位置发生过变动的元素。第二部分统计位置i右边中仍在原位置的元素中,小于rk[i]的个数。接下来我们考虑如何快速求解这两部分的个数。 第一部分:因原创 2015-05-01 16:29:16 · 1219 阅读 · 2 评论 -
HDU 5032 Always Cook Mushroom (2014年北京赛区现场赛A题)
1.题目描述:点击打开链接 2.解题思路:本题利用极角排序+BIT解决。不过这种思路实在是不容易想到。首选把(1,1)~(1000,1000)都存入数组,并按照他们的斜率排序,然后对输入的m条询问也当做点来看待,当然,这些“点”不能和前面预处理的那些点混淆,这些点表示的是询问点,需要保存询问点的信息有:直角顶点(x,0),斜率(b/a),答案(ans),询问的id(i)。对这些询问也按照斜率由小原创 2015-09-05 19:50:16 · 710 阅读 · 0 评论 -
LA4730 Kingdom
1.题目描述:点击打开链接 2.解题思路:本题利用BIT+并查集解决。根据题意可以发现,x值是没有意义的,因此本题实际上是一维的一个操作题。由于line操作需要输出州的个数和城市的个数,且是统计一个点处的结果,自然可以想到用离线标记法来解决,又因为查询操作也比较多,因此可以用BIT来标记和查询。那么如何来更新一个州的城市数目呢?可以用并查集解决,但是有一个问题:两个连通分量合并成一个连通分量时候原创 2015-10-15 23:15:02 · 637 阅读 · 0 评论
分享