以前在poj做过,今天有做了下,TLE了。看了一下原来的代码,原来忘了输入的横坐标可能是0的情况了。
做下笔记:
int lowbit(int i) {
return i&(-i);
}
void add(int i, int val) { //加元素
while(i <= N) {
c[i] += val;
i += lowbit(i); **i不能是0,否则死循环**
}
}
int sum(int i) { //求和
int s = 0;
while(i > 0) {
s += c[i];
i -= lowbit(i);
}
return s;
}