树状数组
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
POJ 2299 Ultra-QuickSort 树状数组
题目:http://poj.org/problem?id=2299题意:给一个从长度为n的数组,问数组中的逆序对数思路:有两种方法,树状数组或者归并排序树状数组:#include #include #include #include #include #include using namespace std;typedef long long ll;const i原创 2016-08-06 15:51:21 · 291 阅读 · 0 评论 -
SPOJ ORDERSET Order statistic set 简单平衡树 或 树状数组
题目:http://www.spoj.com/problems/ORDERSET/en/题意:有下面四种操作:I x 往集合中插入x,若存在则不操作D x 从集合中删除x,若不存在则不操作K x 求集合中第x大的数,若x大于集合的大小输出invalidC x 统计集合中小于x的数的个数思路:简单的平衡树题目,用treap很容易实现,另外学了一波pb_ds试着用了一下 treap:#inc原创 2017-08-03 09:57:40 · 432 阅读 · 0 评论 -
HDU 4638 Group 树状数组离线
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4638题意:给定一个长度为n的数组,数组中元素为1到n,询问某个区间内有多少段连续的数字思路:之前用莫队算法写的,很简单,今天用树状数组离线搞得,感觉不如莫队好想,但是效率高了将近一倍。把询问按照右端点从小到大排序,对于每个数,我们看成是孤立的,更新到树状数组上,即把这个位置加1,然后判断这个数的左原创 2016-10-01 12:04:07 · 434 阅读 · 0 评论 -
SPOJ DQUERY D-query 树状数组离线
题目:http://www.spoj.com/problems/DQUERY/en/题意:给定一个数组,每次询问一个区间内有多少不同的元素思路:本题用莫队或者主席树都可以,但是用树状数组离线更快。#include #include #include #include #include using namespace std;typedef long long ll;co原创 2016-10-01 11:09:37 · 443 阅读 · 0 评论 -
HDU 3333 Turing Tree 树状数组离线
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3333题意:给定一个长度为n的数组,有一些询问:[l, r]内元素的和(相同元素只加一次)。思路:之前做过类似的题目,用的莫队算法或者主席树,也是学习这两个的过程中看到了树状数组离线算法,这次用树状数组离线乱搞一下。首先对所有的询问按照右端点从小到大排序,然后开始依次处理每个元素,对于当前元素,若是原创 2016-09-30 21:06:45 · 401 阅读 · 0 评论 -
HDU 2852 KiKi's K-Number 树状数组
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852题意:维护一个数据结构,有三种操作:0 e代表把e加入到数据结构中,1 e代表把e从数据结构中删除,2 a k代表求数据结构中大于a的第k大数思路:此题用树状数组可以轻松过,前两种操作也就是直接更新树状数组,第三种操作二分枚举,当树状数组求和sum(mid) - sum(a) = k的时候,m原创 2016-09-30 19:24:57 · 447 阅读 · 0 评论 -
POJ 2481 Cows 树状数组
题目:http://poj.org/problem?id=2481题意:给定n个区间,问每个区间被多少个区间包含(自己不能包含自己)思路:先按照右端点从大到小排序,然后左端点从小到大排序。然后查询每个左端点前面有几个数,就是可以包含当前区间的区间个数。注意特判两个区间相等时的情况#include #include #include #include #include #inc原创 2016-08-08 10:14:55 · 359 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number 树状数组
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1394题意:给定一个长度为n的数组,每次可以把当前第一个元素放到最后面,直到数组循环一遍,问这个过程中最少的逆序对数思路:首先求出原本数组的逆序对数,然后每次把第一个元素放到最后时,可以看出,逆序对增加了n - a[i]个,减少了a[i] - 1个,取这个过程中最小值即可#include #i原创 2016-08-08 08:50:19 · 842 阅读 · 4 评论 -
POJ 2352 Stars 树状数组
题目:http://poj.org/problem?id=2352题意:给出一些星星的坐标,按y坐标升序给出,若y坐标相等按照x升序给出。每个星星有一个水平,就是这颗星星左下方的星星数目。输出所有水平的个数思路:因为是按y坐标升序给出的,所以当前星星的左下方星星一定给出过了,忽略y坐标,也是小于等于当前星星x坐标的星星个数,可以用树状数组轻松求出#include #include原创 2016-08-07 09:22:54 · 415 阅读 · 0 评论 -
POJ 3067 Japan 树状数组
题目:http://poj.org/problem?id=3067题意:在东西两侧分别有n和m个城市,现在要在两侧城市间建k条公路,问这些公路的交叉点有多少个思路:对给出的公路,按其中一侧排序,然后用树状数组求另一侧的逆序对数,所有逆序对数就是答案#include #include #include #include #include #include using name原创 2016-08-06 20:27:37 · 377 阅读 · 0 评论 -
HDU 1166 敌兵布阵 树状数组
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166题意:Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个原创 2016-08-06 17:07:24 · 288 阅读 · 0 评论 -
POJ 1442 Black Box treap || 树状数组 || 优先队列
题目:http://poj.org/problem?id=1442题意:给定n和m,表示有n个数往集合中插入,和m个输出。接下来是要插入的n个数,再然后是m个查询,对于某个查询b[i],意思是等到往集合中插入b[i]个数后查询第i小的数思路用treap直接一个一个插入就好,然后直接查询第i小,这是平衡树的看家本领,代码如下:#include <iostream>#include <cstdio>原创 2017-08-03 20:36:06 · 364 阅读 · 0 评论