
树状数组
文章平均质量分 55
风中那朵云
2333333
展开
-
query
题目描述:T组数据,对于每组数据,n个数ai,Q个询问(L,R,h),询问L到R区间内≤h的数的个数 数据范围:30% n,Q≤10^3 100% T≤10 n,Q≤10^5 1≤L≤R≤n 0≤ai,h≤10^9 暴力枚举肯定是能过30%的点 对于100%的点,有一种离线做法是按照a,h把数组和询问分别排序,再用树状数组,原创 2016-11-13 16:39:30 · 388 阅读 · 0 评论 -
POJ1990 MooFest
题目链接:http://poj.org/problem?id=1990 树状数组,统计的时候显然不可以一对一对地加上去 可以先按照v[i]升序 当前位置前后面分类讨论,所以用两个树状数组,一个统计个数,一个统计距离,可以通过作差计算,注意不要算岔了 贴代码#include#include#include #includeusing namespace std;原创 2017-07-07 17:08:13 · 245 阅读 · 0 评论 -
POJ2029 Get Many Persimmon Trees
题目链接:http://poj.org/problem?id=2029 二维树状数组+容斥 c[i][j]的意义是(i,j)为右下角的前缀和 注意要向上统计,向下修改 注意区别单点修改与区间修改 贴代码#include#includeusing namespace std;int const maxn=105;int c[maxn][maxn];int原创 2017-07-06 22:08:15 · 243 阅读 · 0 评论 -
POJ2155 Matrix
题目链接:http://poj.org/problem?id=2155 树状数组+容斥,注意要向上统计,向下修改 注意c[x][y]的意义是A[i][j]修改后的值 贴代码#include#include#include#includeusing namespace std;int const maxn=1005;int c[maxn][maxn];int Q,原创 2017-07-06 17:00:07 · 248 阅读 · 0 评论 -
POJ3067 Japan
题目链接:http://poj.org/problem?id=3067 求交叉数,先按第一列排序,再对第二列求逆序对 注意会爆int 注意==和=,一不留神写错还没看出来 贴代码#include#include#include#includeint const maxn=1005;int a[maxn*maxn],b[maxn*maxn],c[maxn];i原创 2017-07-06 19:59:18 · 248 阅读 · 0 评论 -
POJ2352 Stars
题目链接:http://poj.org/problem?id=2352 树状数组裸题,求的是前k个数中X≤Xk且Y≤Yk的数对个数恰好为i的k有多少个 贴代码#include#includeusing namespace std;const int maxn=32005;int c[32005],f[15005],n;int lowbit(int x){ return原创 2016-11-13 22:42:39 · 222 阅读 · 0 评论 -
POJ2481 Cows
题目链接:http://poj.org/problem?id=2481 树状数组裸题,求的是把线段i包含的线段有几条,可以有1个端点重合,但是不可以两个端点都重合,注意判重就好 贴代码 const maxn=100005; var a,b,c,id,ans:array[0..maxn]of longint; n:longint; procedure swap(var原创 2016-11-14 09:09:09 · 297 阅读 · 0 评论 -
POJ3321 Apple Tree
题目链接:http://poj.org/problem?id=3321 树状数组裸题,对于每个时间点,设置两个时间戳,分别记录dfs时的进栈时间和出栈时间,前缀和做差就是子数中被标记的个数 贴代码#include#includeusing namespace std;const int maxn=100005;int c[maxn],inn[maxn],oun[maxn],原创 2016-11-14 11:36:34 · 209 阅读 · 0 评论 -
POJ2299 Ultra-QuickSort
题目链接:http://poj.org/problem?id=2299 树状数组求逆序对,要先离散 贴代码 var a,b,c,id:array[0..500005]of longint; n:longint; ans:int64; procedure swap(var x,y:longint); var t:longint; begin原创 2016-11-14 12:37:50 · 236 阅读 · 0 评论 -
CODECHEF Sereja and Commands
题目链接:https://www.codechef.com/SEPT17/problems/SEACO 树状数组,倒着处理 因为数字更新可能为负,所以取模要注意 贴代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const int maxn=1原创 2017-09-11 19:41:02 · 407 阅读 · 0 评论