摘要: 树状数组的模版题,还是一维的!直接A掉就行!#include <iostream>#include <cstring>#include <stdio.h>using namespace std;int num=0;int tree[50005],tmp[50005];inline int lowbit(int t){ return t & (t ^ (t-1));}inline void update(int pot,int val){ while(pot <=num) { tree[pot]+=val; //if (pot==1) {cout 阅读全文
posted @ 2012-09-21 19:10 兴安黑熊 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 这又是一个简单的二维树状数组的题目,题目很好,很简洁。开始时星星都不亮,每个坐标的星星只能是1或0,1代表亮,0代表灭就行了;所以如果这个星星已经是亮的了,就没必要再让它操作“亮”;如果这个星星已经是灭的了,也没必要执行 “灭”的操作了。还是要注意数组的下标从1开始,那是必须的,呵呵!还有输入的x1 x2 大小可能不是正常的,要判断一下,y1 y2同理;代码如下: 模版不用动的,早就背下来了!#include <iostream>#include <cstring>#include <stdio.h>using namespace std;const int 阅读全文
posted @ 2012-09-21 19:07 兴安黑熊 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 本题是二维的树状数组的基本应用,非常好,要先读懂题意:有很多方格,每个方格对应的坐标为(I,J),刚开始时每个格子里有1本书,然后让你统计一片区域有多少本书,还可以增加书和减少,移动书。注意本题的坐标是从0开始的,而树状数组必须从1开始,否则会死循环,所以输入坐标后,都先自动+1了;二维的模版基本也是不变的! lowbit() update() query()代码:#include <iostream>#include <cstring>#include <stdio.h>using namespace std;const int maxn=1008;int 阅读全文
posted @ 2012-09-21 18:07 兴安黑熊 阅读(158) 评论(0) 推荐(0) 编辑