void build(int l, int r, int n) //建树
{
int mid;
tree[n].l = l;
tree[n].r = r;
if(l==r)
{
tree[n].sum = h[l];
return ;
}
mid = (l+r)>>1;
build(l, mid, 2*n);
build(mid+1, r, 2*n+1);
tree[n].sum = tree[2*n].sum + tree[2*n+1].sum;
}...
分类:
其他好文 时间:
2014-07-23 18:11:36
阅读次数:
282
13年长春现场赛的G题,赤裸裸的二维线段树,单点更新,区间查询不过我是第一次写二维的,一开始写T了,原因是我没有好好利用行段,说白一点,还是相当于枚举行,然后对列进行线段树,那要你写二维线段树干嘛二维就是在每个行段也建一棵树,来代表这个区间的行里的某些列的值其他操作倒是不难,因为有一维的功底,只是多...
分类:
其他好文 时间:
2014-07-23 11:53:36
阅读次数:
216
题意:与区间查询点更新,点有20W个,询问区间的最大值。曾经用线段树,1000+ms,今天的伸展树,890没ms,差不多。
第一次学习伸展树,一共花了2个单位时间,感觉伸展树真很有用,也很好玩。现在只学了一点点。切个点更新试试。
大致思路:用编号(数组)作为树的键值建树,每插一个数,沿路节点更新最大值(每个结点有一个附加信息标记以之为子树的树所有点的最大值)。所以,查询时【i,j】,只要把i-...
分类:
其他好文 时间:
2014-07-22 22:34:13
阅读次数:
294
题目:hdoj1166
分析:题意很清晰,就是让你给某个点又增加或者减少x个,然后求某一段有多少个,我是用一个father数组保存叶子节点的编号,然后直接从当前节点开始,更轻到root就ok。
查询的话,从根节点开始,看在左子区间还是右子区间,直接查询到某一段全部在要查询的区间内,求和就ok,很简单。
代码:
#include
#include
#include
...
分类:
其他好文 时间:
2014-07-22 14:33:54
阅读次数:
231
题目:hdoj1754 I Hate It
分析:更新的话,建树的时候保存叶子编号的的节点信息,然后从下往上更新就ok。
求和的话,从根节点开始,然后找在根的左边还是右边,然后递归找一个所有中的最大值即可、
代码:
#include
#include
#include
using namespace std;
const int N = 205000;
struct...
分类:
其他好文 时间:
2014-07-22 14:33:36
阅读次数:
179
PKU暑期培训第一天,这次培训人很多,但是感觉打酱油的也不少,不知道大牛有多少。第一天都是讲线段树的,课件的话和往常一样,没什么变化。具体的话,讲了线段树和树状数组。线段树的话讲了单点更新,成段更新,扫描线已经离散化。然后随便提了提树状数组。估计明天再讲一点点,然后接着是讲并查集,多串匹配什么的。线...
分类:
其他好文 时间:
2014-07-20 09:06:47
阅读次数:
509
Balanced Lineup
Time Limit: 5000MS
Memory Limit: 65536K
Total Submissions: 32778
Accepted: 15425
Case Time Limit: 2000MS
Description
For the daily milking, Far...
分类:
其他好文 时间:
2014-07-14 12:44:18
阅读次数:
194
Who Gets the Most Candies?
Time Limit: 5000MS
Memory Limit: 131072K
Total Submissions: 9416
Accepted: 2868
Case Time Limit: 2000MS
Description
N children are s...
分类:
其他好文 时间:
2014-07-09 12:46:35
阅读次数:
234
Billboard
Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9632 Accepted Submission(s): 4286
Problem Description
At the entrance...
分类:
其他好文 时间:
2014-07-08 15:28:41
阅读次数:
158
Buy Tickets
Time Limit: 4000MS
Memory Limit: 65536K
Total Submissions: 12296
Accepted: 6071
Description
Railway tickets were difficult to buy around the Lunar New Y...
分类:
其他好文 时间:
2014-07-08 15:24:47
阅读次数:
160