摘要: http://poj.org/problem?id=1195题意:给出一个矩阵,给某个格子加/减一个数,就某个子矩阵的和,1024*1024的范围,二维的树状数组子矩阵(x1,y1,x2,y2)(左下角的点和右上角的点)的和ans=sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1)代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#define nMAX 1050using namespace std;in 阅读全文
posted @ 2012-08-17 21:46 快乐. 阅读(117) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3321题意:给出一颗苹果树,开始每个树叉上都有 一个苹果,苹果树总是以1为根,Q 1表示1树枝上有多少苹果,C 2表示更新树枝2上的苹果,以前有苹果变成没有,以前没有变成有,树杈上的苹果数不超过1分析:插入,删除频繁,还需要算和,10^5的数据量,用线段树或树状数组,但是给出的是一棵树,不在一条线上。。。有时候不能看出什么是区间,就要仔细观察,造出“区间”,如果从1根节点出发,dfs遍历树一遍,那遍历每个节点的时间是一条线,把时间划成区间。。。每个节点有两个时间戳,low[]表示开始时间,high[]表示结束时间。那么这个树枝上苹果的个数就 阅读全文
posted @ 2012-08-17 20:24 快乐. 阅读(171) 评论(0) 推荐(0) 编辑