树状数组
Singular__point
stay foolish ,stay hungry !
展开
-
poj 2029 Get Many Persimmon Trees
Get Many Persimmon Trees题目链接:点击打开链接本题为典型的二维树状数组模板题,直接套用即可,本题数据较小直接暴力也行。代码如下:#include #include #include #include using namespace std; const int MAXN = 110; int n , w , h原创 2017-04-11 21:49:16 · 282 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21644 Accepted Submission(s): 12938Problem Description原创 2017-09-27 16:58:08 · 318 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem
Let SS be a sequence of integers s_{1}s1, s_{2}s2, ......, s_{n}sn Each integer is is associated with a weight by the following rules:(1) If is is negative, then its weight is 00.(2)原创 2017-09-24 21:09:19 · 311 阅读 · 0 评论 -
poj 2155 Matrix
题目链接:点击打开链接本博客适用于知道什么是树状数组,但是不明白如何取用的,我就是其中一个,希望能帮到你。之所以转载是因为我用的是百度百科的代码,也是在百度百科里见到了这个题,初一见到,感觉很抽象,01翻转通过累加再%2还好理解,然而只修改点就行了吗????怎么实现的????首先转换为一维,翻转A[x1,x2]中的数,就是将x2前面的数翻转,再将x1前面的翻转,转载 2017-04-22 21:49:25 · 287 阅读 · 0 评论 -
poj 2299 树状数组(离散化)求逆序数
Ultra-QuickSort题目链接:点击打开链接传送门:转载处给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数,每读入一个数就更新树状数组,查看它前面比它小的已出现过的有多少个数sum,然后用当前位置减去该sum,就转载 2017-04-14 20:58:58 · 431 阅读 · 0 评论 -
HOJ 2275 Number sequence
Number sequence题目链接:点击打开链接解题思路:维护两个数组,一个记录 Aj 前面有几个比它小的,另一个记录 Aj 后面有几个比它小的,由于 Aj 前面和后面的数都满足 i#include #include #include #includeusing namespace std;#define MAXN 50005int n;in原创 2017-04-21 21:07:28 · 338 阅读 · 0 评论 -
HDU 1566 Color the ball
Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 19531 Accepted Submission(s): 9719Problem DescriptionN个气球排成一排,从原创 2017-05-02 19:49:20 · 332 阅读 · 0 评论 -
HOJ 1867 经理的烦恼
经理的烦恼题目链接:点击打开链接解析:标准的树状数组应用,价格判断素数,本来想打表的,后来发现直接算不超时。代码如下:#include #include #include #includeusing namespace std;#define MAXN 1000005int tree[MAXN];int data[MAXN];int f(原创 2017-04-19 22:48:41 · 340 阅读 · 0 评论 -
poj 3067 Japan
Japan题目链接:点击打开链接解题思路:自己本人也是刚刚接触树状数组,并且也知道树状数组可以求逆序数,但是第一眼还是看不透这个题能用逆序数。首先,这个题有个规律,凡是能有交叉的线,都有一个规律,两条边A、B,(Ax-By)*(Ay-By)然后将x升序排列,x相等的按y升序排列;求y得逆序数,x已经是升序的,y的逆序数必定是降序,所以满足上式子,统计一下原创 2017-04-16 10:56:21 · 442 阅读 · 0 评论 -
HDU 5975 Aninteresting game(树状数组原理题)
Aninteresting gameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 210 Accepted Submission(s): 83Problem DescriptionLet’s play原创 2017-05-02 09:33:03 · 1280 阅读 · 0 评论 -
HDU 1541+poj 2352 stars
Stars题目链接:点击打开链接本题是树状数组模板题,由于x,y数据过大,不能开二维数组;但是题目中说了数据是一维一维的给出的所以可以用一维数组;还有一点就是x可以为0,所以对于所有x都加1处理;代码如下:#include#include#define MAXN 32002#define N 15002int tree[MAXN];int vi[N原创 2017-04-11 20:55:04 · 503 阅读 · 0 评论 -
poj 2481 Cows
Cows题目链接:点击打开链接解题思路:先将题目抽象化为一维坐标上的线段真包含关系,实例中0 3完全包括1 2,只有这一组成立的关系,所以答案为1 0 0 。将1 2,0 3,3 4.当做二维坐标来看放到二维坐标系中来看,转化成求一个点的左上方有多少点,类似于poj 2352;所以解题思路就欧了;代码如下:#include原创 2017-04-15 16:26:20 · 372 阅读 · 0 评论 -
hoj 2430 Counting the algorithms (树状数组)
Counting the algorithms题目链接:点击打开链接题目描述:在一个1到2*N的区间内,1到N这N个数都出现了两次,相同的数做差,做完之后删除,其他的元素位置也会被改变,所以用树状数组统计区间内的元素个数。加个位置数组快速找到相同数的位置。代码如下:#include #include #include using namespace s原创 2017-04-19 10:44:47 · 381 阅读 · 0 评论 -
hdu 1892 See you~
See you~题目连接:点击打开链接题目描述:在一个最大为1000*1000的图上,每个格子里事先放一本书,现在有四种操作如下;//S 读取x1 y1 到 x2 y2之间的总数 //A 在x y 位置放n1 本书//D 在x y 拿走n1本,不n1就全取走//M 将x1 y1 移动到 x2 y2 n1个不够则全部移走注意:(1) x1 y1 到 x原创 2017-04-12 20:34:45 · 361 阅读 · 0 评论 -
HDU 1166 敌兵布阵
敌兵布阵题目链接:点击打开链接题目和本博客里之前的题目没什么区别,都是典型的树状数组增删改查。代码如下:#include#include#define MAXN 50005int tree[MAXN];int data[MAXN];void add(int x,int num){ for(int i=x;i<MAXN;i+=i&(-i)) tr原创 2017-04-14 19:03:38 · 307 阅读 · 0 评论