
树状数组
文章平均质量分 75
kk303
这个作者很懒,什么都没留下…
展开
-
首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛网络预赛C题(HDOJ-4217)
这题比赛的时候是狐狸大大敲的..先用了list..结果超时了..果断树状数组A之...其实这题当年做过很类似的: POJ2828 插队排队问题.. 初始所有点的值都是1..那么初始时每个点k的1~k之和a[k]就是当前数(当然做了取出操作后就不一样了...)...要取出当前第k大时..用二分夹逼找到a[h]=k的h..再将h位更新为-1.并更新树状数组..那么就相当于将>=h的原创 2012-04-16 14:06:41 · 5822 阅读 · 0 评论 -
HDOJ 4046 - Panda 树状数组维护
题意: 给了一列字符串(最长50000)...字符串仅由w,b组成..现在有两个操作.. 0 l r : 询问区间[l,r]有多少个wbw..输出.. 1 x c: 将第x位置变成c(c=w or b) 题解:原创 2013-11-22 17:05:32 · 975 阅读 · 0 评论 -
HDOJ 1156 - Color the ball 水题复习线段树..线段树与树状数组的对比..
题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a 题解: 单纯复习线段树..同时做个小对比..上方树状数组..下方线段树: 无论从时间空间以及编码复杂度上..树状数组完爆线原创 2013-10-06 09:37:06 · 939 阅读 · 0 评论 -
POJ 1195 - Mobile phones 二维树状数组(单点更新..区间查询)
题意: 给了一个N*N的矩阵(N 1 x1 y1 x2 y2 : (0 2 x y d : (0 题解: so easy了~~裸二维线段树..和POJ2155不同原创 2013-10-05 17:35:45 · 756 阅读 · 0 评论 -
POJ 2155 - Matrix 二维树状数组..区间更新..单点查询
题意: 给了一个N*N的矩阵(1 题解: 首先想到要知道该格子是0还是1只要知道它被操作了几次就好..模2是1答案就是1..模2是0答案就是0.. 对于连续二维区域进行维护...用二维的线段树或者树状数组..写起来也挺简单的原创 2013-10-05 15:37:20 · 1511 阅读 · 0 评论 -
POJ 2352 - Stars 排序后用树状数组处理+离散化
题意: 在x,y坐标系下有N(N 题解: 和POJ2481差不多..甚至要方便很多..因为不是输出每个星星的信息..只是统计..所以没必要对线段记录原始位置了..又题意保证不会出现相同的点..所以不用来维护相同的点..排好序..直接用树状数组搞就是...Program原创 2013-10-04 19:03:38 · 1052 阅读 · 2 评论 -
POJ 3067 - Japan 树状数组~细心估计数据范围
题意: 左侧有一列点..从上到下1~N..右侧有一列点..从上到下1~M...现在告诉左右侧哪两点有边..问一共有多少个交点... 题解: 可以发现一个交点出现..仅当这两个线段头尾的头尾的大小相反...比如(1,2)和(2,1)相交..因为i1比2小..后有2比1大原创 2013-10-05 08:14:03 · 919 阅读 · 0 评论 -
POJ 2481 - Cows 树状数组离线处理
题意: 给了N个线段(N=l && R-L > r-l... 题解: 这题就是上半年南京邀请赛的热身题... 将所有线段按起点从小到大排序..当起点相同时终点从大到小排序..然后按排好的顺序..按拍好的顺序访问每个线段...先统计原创 2013-10-04 18:16:04 · 1764 阅读 · 0 评论 -
POJ 3378 - Crazy Thairs 树状数组+dp+离散化+高精度..
题意: 给了一个数列,长度为N(1 题解: 首先想到的是dp...dp[t][x]代表当前最后一个数位x,.长度为x的递增子序列有多少个..更新就是将比他前方小的所有dp[t-1][i]加起来... 再看到每个数是小于10^原创 2013-10-04 17:33:25 · 1518 阅读 · 0 评论 -
HDOJ 4031 - Attack 区间更新点查询的树状数组+暴力...
题意: 911十周年之际..恐怖份子准备再次发动攻击...现在设立了N个防御塔..每个防御塔抵挡了一次攻击后..要技能能却T时间后才能再次防御..而当一个防御塔处于冷却状态时,收到的攻击就会都接受...而恐怖份子的武器很厉害..每次会攻击一个连续的范围...现在告诉恐怖份子发动攻击的情况...并且中间询问某个防御塔成功受到了多少次攻击.原创 2013-10-04 15:16:16 · 1322 阅读 · 0 评论 -
POJ 3321 - Apple Tree DFS出时间搓,树状数组统计维护..
题意: 有一颗苹果树..初始时所有枝条上面的苹果树为1...现在做操作..C x代表若x有苹果摘掉..若x无苹果加上..然后Q x代表询问以x个根的子树共有多少个苹果.. 题解: 用dfs求出时间搓(类似后续遍历)....标记出每个点位根子树的左右界..然后就是单点更新区间求和了原创 2013-10-03 16:47:15 · 1194 阅读 · 6 评论 -
HDOJ 4417 - Super Mario 线段树or树状数组离线处理..
题意: 同上 题解: 抓着这题作死的搞~~是因为今天练习赛的一道题.SPOJ KQUERY.直到我用最后一种树状数组通过了HDOJ这题后..交SPOJ的才没超时..看排名...时间能排到11名了..有些叼...看下时间效率..自下而上: 划分树、线段树、树状数组、优化后的树状数组...原创 2013-08-08 19:41:03 · 1086 阅读 · 0 评论 -
CodeForces 315E - Sereja and Subsequences 阅读理解+树状数组
题目好久才看懂.....意思是在将这串所有非降子串值相加...子串值的定义是这串中所有元素相乘. ai最大为10^6...用一个10^6大的树状数组来维护(线段树也可以..不过空间和时间都会差一些)...从左扫到右...插入查找更新答案... 值得注意的是元素相等的情况..如样例二 1 2 2 -> (1 , 2 , 12 , 22 , 122)原创 2013-07-29 16:36:35 · 1262 阅读 · 0 评论 -
POJ 3928 - 树状数组
2008年北京的现场赛的题出5了道~~对比下当时的排名..尽然到12名了..至少拿银..囧...或许是这几年ICPC发展太迅猛了吧.... 这题如果最暴力的..就是枚举中间的 j ..看左边有多少比 data[j] 小的...右边有多少比 data[j] 大的...相乘加到答案中..再看左边有多少比 data[j] 大的...右边有多少比 data[j] 大的..相乘加到答案中...原创 2012-09-14 18:38:51 · 850 阅读 · 0 评论 -
HDOJ 5178 - pairs 离散化+树状数组..
题意: 在一串数中X[1],X[2],.....X[n],问其中有多少对位a,b,满足a 题解: 主要思路很太常见,从第一个数开始往后首先询问在其前面的数有多少个各与其可以组成满足条件的对,再将其插入. 用线段树或树状数组维护.由于k很大,所以需要把所有的数离原创 2015-03-04 21:49:07 · 886 阅读 · 2 评论