树状数组
sdau20163940
努力学习,天天向上!
展开
-
敌兵布阵(简单树状数组)
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 97716 Accepted Submission(s): 41345Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以原创 2017-08-16 20:07:35 · 177 阅读 · 0 评论 -
A Simple Problem with Integers(树状数组,更新区间查询区间模板)
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 117220 Accepted: 36444Case Time Limit: 2000MSDescriptionYou have原创 2017-08-23 20:30:16 · 275 阅读 · 0 评论 -
Find the nondecreasing subsequences(数状数组+离散化+dp)
Problem BTime Limit : 10000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 70 Accepted Submission(s) : 17Problem DescriptionHow many nondecreasin原创 2017-08-23 21:37:58 · 225 阅读 · 0 评论 -
Matrix(二维数状数组+求和+区间更新+单点查询)
Problem PTime Limit : 6000/3000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 65 Accepted Submission(s) : 27Problem DescriptionGiven an N*N matrix A原创 2017-09-28 11:07:47 · 377 阅读 · 0 评论 -
Flowers(树状数组+区间更新+单点查询+区间更新单点查询模板)
Problem ITime Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/65536K (Java/Other)Total Submission(s) : 30 Accepted Submission(s) : 18Problem DescriptionAs is known to all, th原创 2017-09-28 12:03:08 · 454 阅读 · 0 评论 -
No Pain No Game(数状数组离线查询)
Problem MTime Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 7 Accepted Submission(s) : 3Problem DescriptionLife is a game,and you l原创 2017-10-06 18:45:49 · 323 阅读 · 0 评论 -
采花(树状数组+HH的项链加强版) 区间内相同的数量
萧芸斓是Z国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色数越多她会越高兴!同时,她有一癖好,她不允许最后自己采到的花中,某一颜色的花只有一朵。为此,公主每采一朵花,要么此前已采到此颜色的花,要么有相当正确的直觉告诉原创 2017-10-01 14:43:31 · 160 阅读 · 0 评论 -
HH的项链(树状数组)区间内不同的数量
HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。Input第一行:一个整数N,表示项链原创 2017-10-01 14:38:06 · 443 阅读 · 0 评论 -
方伯伯的玉米田(数状数组+dp)
方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。这排玉米一共有N株,它们的高度参差不齐。方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。方伯伯可以选择一个区间,把这个区间的玉米全部拔高1单位高度,他可以进行最多K次这样的操作。拔玉米则可以随意选择一个集合的玉米拔掉。问能最多剩多少株玉米,来原创 2017-10-01 21:32:06 · 249 阅读 · 0 评论 -
Counting Black(树状数组)
Problem OTime Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)Total Submission(s) : 14 Accepted Submission(s) : 12Problem DescriptionThere is a board with原创 2017-10-01 22:44:56 · 217 阅读 · 0 评论 -
MooFest(数状数组)
Problem PTime Limit : 2000/1000ms (Java/Other) Memory Limit : 60000/30000K (Java/Other)Total Submission(s) : 43 Accepted Submission(s) : 24Problem DescriptionEvery year, Farmer Joh原创 2017-10-02 19:43:41 · 695 阅读 · 0 评论 -
Turing Tree(数状数组)
转自:http://blog.csdn.net/acm_baihuzi/article/details/46861109Sample Output15636 Statistic | Submit | Back题意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。题解:转载 2017-10-02 21:08:03 · 281 阅读 · 0 评论 -
Rotate(数状数组+逆序数)
Problem CTime Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 113 Accepted Submission(s) : 14Problem DescriptionRecently yifenfei fac原创 2017-10-03 20:01:26 · 252 阅读 · 0 评论 -
A Simple Problem with Integers(多个数状数组)
Problem ITime Limit : 5000/1500ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 17 Accepted Submission(s) : 5Problem DescriptionLet A1, A2, ... , AN be原创 2017-10-03 21:49:08 · 324 阅读 · 0 评论 -
Crossing(一维单点更新,区间查询)
Problem RTime Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 8 Accepted Submission(s) : 4Problem DescriptionWintokk has collect原创 2017-10-05 20:02:05 · 229 阅读 · 0 评论 -
Groups(数状数组+离线维护)
Problem MTime Limit : 4000/2000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 5 Accepted Submission(s) : 3Problem DescriptionThere are n men ,every m原创 2017-10-05 22:34:01 · 171 阅读 · 0 评论 -
POJ 2182 Lost Cows(树状数组)
Problem QTime Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 35 Accepted Submission(s) : 23Problem DescriptionN (2 <= N <= 8,000) c转载 2017-08-26 22:19:05 · 222 阅读 · 0 评论 -
See you~(二维树状数组)
Problem ATime Limit : 5000/3000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 39 Accepted Submission(s) : 11Problem DescriptionNow I am leaving hust原创 2017-08-22 00:02:32 · 263 阅读 · 0 评论 -
树状数组求逆序数
转自:http://www.cnblogs.com/xiongmao-cpp/p/5043340.html1、什么是逆序数? 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序数的总数就是这个排列的逆序数。 2、用树状数组求逆序数的总数 2.1该背景下树状数组的含义转载 2017-08-16 20:44:46 · 413 阅读 · 0 评论 -
树状数组简单总结
1、树状数组最早用于数据压缩。2、c[i]的初始位置是去掉最低位的1之后加上1.(最后一个1代表的权值表示c中拥有a的个数。)3、c[i]下标的起点是下标 x=i-[i&(-i)]+1;4、树状数组之所以高效简洁的原因就是能够利用位运算直接求出i对应的lowbit。# define lowbit(x)((x)&(-x));int lowbit(int i){return i&(原创 2017-08-16 10:47:26 · 271 阅读 · 0 评论 -
Ping pong(树状数组)
Ping pongTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5458 Accepted Submission(s): 2032Problem DescriptionN(3<=N<=20000) ping原创 2017-08-17 10:54:47 · 336 阅读 · 0 评论 -
HDU 2852 KiKi's K-Number *(树状数组)
题意: 给出三种操作, 0在容器中插入一个数。 1在容器中删除一个数。 2求出容器中大于a的第k大元素。 二分+树状数组思路: 树状数组的特点就是对点更新,成段求和,而且常数非常小。原始的树状数组只有两种操作,在某点插入一个数 和 求1到i的所有数的和。这道题目一共有三种操作,但是实质上其实只有两种:插入和询问。插入操作和删除操作可以视原创 2017-08-18 10:23:00 · 188 阅读 · 0 评论 -
Stars(树状数组)
StarsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 48755 Accepted: 21068DescriptionAstronomers often examine star maps where stars are represented by原创 2017-08-18 11:08:16 · 296 阅读 · 0 评论 -
Ultra-QuickSort(树状数组+离散化+求逆序)
Ultra-QuickSortTime Limit: 7000MS Memory Limit: 65536KTotal Submissions: 62847 Accepted: 23421DescriptionIn this problem, you have to analyze a particular sorting原创 2017-08-18 15:11:53 · 172 阅读 · 0 评论 -
求逆序数
在树状数组中最常用到的就是求逆序数了,那么给你一串数字那么我们如何来求逆序数呢?下面给出代码示例:#include #include #include #include #include #define maxn 15using namespace std;int c[maxn],b[maxn];int lowbit(int x){ return x&(-x);}v原创 2017-08-18 15:46:24 · 235 阅读 · 0 评论 -
Necklace(树状数组)
NecklaceTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5024 Accepted Submission(s): 1718Problem DescriptionMery has a beautiful原创 2017-08-18 19:54:42 · 344 阅读 · 0 评论 -
Turing Tree(树状数组+离散化)
Turing TreeTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5580 Accepted Submission(s): 1992Problem DescriptionAfter inventing Tu原创 2017-08-18 20:33:52 · 385 阅读 · 0 评论 -
数组的离散化
我们在处理数组问题时,如需要求逆序数,然而数据给的又特别大,此时我们就可以用数组的离散处理来解决了。当数的范围比较大时需要进行离散化,即先排个序,再重新编号。如a[] = {10000000, 10, 2000, 20, 300},那么离散化后a[] = {5, 1, 4, 2, 3}。附上代码:#include#include #include#inc原创 2017-08-18 15:15:00 · 2451 阅读 · 0 评论 -
区间交(树状数组+二分)hdu5700
Problem Description 小A有一个含有n个非负整数的数列与mm个区间。每个区间可以表示为li,ri。它想选择其中k个区间, 使得这些区间的交的那些位置所对应的数的和最大。例如样例中,选择[2,5]与[4,5]两个区间就可以啦。 Input 多组测试数据第一行三个数n,k,m(1≤n≤100000,1≤k≤m≤1原创 2017-08-18 23:33:42 · 256 阅读 · 0 评论 -
strars(树状数组)
StarsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 48771 Accepted: 21075DescriptionAstronomers often examine star maps where stars are represented by原创 2017-08-19 11:16:59 · 332 阅读 · 0 评论 -
HDU 3584 Cube(三位树状数组)
Problem ETime Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 21 Accepted Submission(s) : 12Problem DescriptionGiven an N*N*N cube A原创 2017-08-24 23:22:22 · 266 阅读 · 0 评论 -
树状数组
树状数组关于树状数组的详细介绍可见刘汝佳《算法竞赛入门经典:训练指南》 对于一个n元素的数组A[n],可执行如下操作: Add(I, d):让A[i]变成A[i]+d。 Query(L, R):返回A[L]+A[L+1]+…+A[R]。 注意:树状数组只能计算A[1]开始的和,A[0]这个元素是不能用的。上面操作复杂度都是转载 2017-08-15 09:20:53 · 236 阅读 · 0 评论 -
i&(-i)的计算
这句话的意思是:返回 i 的二进制数最低位为1的权值。例如:10100最低位的1权值是41001010最低位的1权值是2111最低位的1权值是1代码:#includeusing namespace std;int main(){ int i; for(i=1; i<=20; i++) cout<<(i&(-i))<<endl;原创 2017-08-15 09:52:27 · 1319 阅读 · 0 评论 -
树状数组--求比某一位置x小的数的个数
好好看了一些树状数组的东西,看了一些原理,以1,2,3,4,5为例,代码如下:#include<iostream>#include<cstring>using namespace std;const int MAXX=10000;int a[MAXX];int c[MAXX];int S_L[MAXX];int S_R[MAXX];int max_a;i...原创 2018-05-29 20:18:16 · 1183 阅读 · 1 评论