随笔分类 - 线段树/树状数组
摘要:这题开始一直不会,查解题报告,都看不懂,后来还是自己想明白了……其实这个题目的难点就在于重复值不能重复算(假设没有重复值就是一道很水的树状数组题了,甚至都可以不用树状数组),所以这题突破点就是消除重复值带来的影响。如何消除呢?其实也不难。我们先局部地看这个问题,数据不是一次性加入树状数组里,而是一个个地加。假设有两个查询(1, y1)和(x2, y2)其中y1<y2。假设[1, y1]之间没有重复的数,那么我们把这些数插入一个树状数组里就能解决问题(logn时间查出结果)。然后到了操作(x2,y2),因为y2比y1大,在y1到y2之间可能有些数在[1,y1]已经出现过了,那么我们如何处理
阅读全文
摘要:这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果……结果……水了好多方法都水不过,出题人真狠呐……我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1+1),然后对于这个操作之前的每一个操作,对ans进行处理即可。可是交上去TLE,加上输入外挂,还是TLE,又加一个优化,即对于每一个查询,如果查询的区间小于10000,就直接数,还是TLE,服了,还是打树状数组吧~~~~~~~~~~~~~我的水代码:/* * hdu1892/win.cpp * Created on: 2012-11-1 * Author : ben */#include ...
阅读全文
摘要:这题一看就想用线段树或数状数组做,过了以后再上网搜别人的解法,发现有人居然没用线段树或数状数组,利用类似部分和的思想,太强大了!/* * hdu1556/win.cpp * Created on: 2011-11-13 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#includ
阅读全文
摘要:题目不难,比赛的时候一读完题目我就知道怎样做了,可是打了一个小时,原因是BF算法居然记不清了,唉,早知道干脆用KMP了。可是打完以后还一直不过,让其它几个队帮我测试,测了一个多小时还是没有找到错误。离比赛结束只有一个小时的时候,让海峰帮我测,终于找到错误,改正就过了。唉,这次比赛的悲剧也就在我,在这题上了吧,花了太多时间。/* * 2011BeijingG/win.cpp * Created on: 2011-9-18 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>
阅读全文
摘要:本来想找些树状数组的题做做,看到这题,不知道用树状数组的话应该如何做,就还是用线段树了。/* * hdu1754/win.cpp * Created on: 2011-9-6 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int MAXN = 200100;const int MAX_NODE = 400100;int
阅读全文
摘要:题目没啥说的,赤裸裸的树状数组/* * hdu1166/win.cpp * Created on: 2011-9-6 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int MAXN = 50100;int N, M;int array[MAXN];inline int lowbit(int x) { return x &
阅读全文
摘要:这题本来可以不用线段树做的,因为数据比较弱,直接离散化即可。但为了练习线段树,还是用线段树打了,可是却WA了一整天!调了四个小时以后仍没找出错误,让竹子帮我测试,测出了一处错误,又去北大讨论版找了些数据测,终于过了。我的代码如下,第一次写这类题目,写得比较乱,以后再改进吧。/* * hdu1542/linux.cpp * Created on: 2011-9-1 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#includ
阅读全文
浙公网安备 33010602011771号