随笔分类 -  数据结构_树状数组

cf 61 E. Enemy is weak 离散化+树状数组
摘要:题意:给出一个数组,数组的每一个元素都是不一样的,求出对于3个数组下标 i, j, k such that i aj > ak where ax is the value at position x. 的个数明显数组的值太大了先离散化,然后就是简单的树状数组了对于每一个i,只要统计i前面的数中比... 阅读全文
posted @ 2015-11-28 14:34 _fukua 阅读(396) 评论(0) 推荐(0)
Ping Pong,Beijing 2008,LA4329 树状数组 好题
摘要:N (3 2 #include 3 #include 4 5 using namespace std; 6 7 const int maxn=20000+10; 8 9 int ls[maxn]; //第i个人左边技能值小于a[i]的人数10 int rs[maxn]; ... 阅读全文
posted @ 2015-05-28 18:14 _fukua 阅读(315) 评论(0) 推荐(0)
HDU 1556 color the ball
摘要:树状数组,插段问点有一行气球,给出n个区间,每次对区间内的每个气球涂一次色,问最后每个气球各涂了多少次。 1 #include 2 #include 3 const int MAXN=100000+5; 4 int c[MAXN]; 5 int n; 6 int lowbit(int x) 7 { ... 阅读全文
posted @ 2015-04-03 13:32 _fukua 阅读(232) 评论(0) 推荐(0)
POJ2182 Lost Cows 树状数组
摘要:一群牛,编号为1到n,但是编号乱了,已知每只牛的前面有多少只编号比其小,求出牛的编号。插点问段。这道题要从后面反推回来,比如最后的一只牛,知道有a只编号比它小,则它的编号为a+1。update 更新已经确定的编号,sum(i) 查询已经确定的编号中(后面的牛的编号都确定了),有多少个比i小。 1 #... 阅读全文
posted @ 2015-04-03 13:27 _fukua 阅读(260) 评论(0) 推荐(0)
POJ3067 Japan 树状数组
摘要:Japan某城市的左边从上到下有n个城市,右边从上到下有m个城市,现要建k条高铁,起点在左边,终点在右边,问有多少个交点(任一交点只能有2条线同时经过)。排序+树状数组,插点问段。排序后,按起点从小到大扫一遍,a[j]表示前i条线中,终点为j的个数。c[j]a[j]的树状数组。注意:最后结果要用lo... 阅读全文
posted @ 2015-04-03 13:17 _fukua 阅读(236) 评论(0) 推荐(0)
poj2352 starts 树状数组
摘要:有n个星星,按照y坐标的升序给出n个星星的坐标,对于每一个星星,其level为在其左下方(包括正左,正下)的星星个数,输出n行,第i行代表等级为i个星星的星星的个数。树状数组的插点问段思路:a[i]存储星星的x坐标,b[i]表示0到i中x,y坐标小于i的个数,即i的等级则对于每个b[i],做一次扫描... 阅读全文
posted @ 2015-04-03 13:13 _fukua 阅读(256) 评论(0) 推荐(0)
hdu1394 Minimum Inversion Number 线段树和树状数组
摘要:题意: 输入一个长度 n 第二行给出长度为n的数组,数组的值刚好为0到n-1这n个数。 然后每次把数组的第一个数放到最后一个,放n-1次,共有n个排列,这n个排列就有n个逆序数,输出这n个逆序数的最小值。我的做法:1、每次输入a[i]后,都把a[i] ++;2、求出第一个排列的逆序数3、递... 阅读全文
posted @ 2015-03-21 11:48 _fukua 阅读(216) 评论(0) 推荐(0)
Hdu1166_敌兵布阵——线段树or树状数组
摘要:树状数组,插点问段 1 #include 2 #include 3 #include 4 using namespace std; 5 const int MAXN=50000+5; 6 int c[MAXN]; 7 int lowbit(int x) 8 { 9 return x&(-x)... 阅读全文
posted @ 2015-03-06 22:17 _fukua 阅读(226) 评论(0) 推荐(0)