Counting Stars
题目链接:
离线+树状数组
一眼扫过去:平面区间求和,1e6的数据范围,这要hash+二维树状数组吧?这么短时间我肯定调不出来,果断弃...
结束后有人说一维树状数组可以做,ヾ(。`Д´。)离线啊没想到。
然后就成了水题...(坐标要++,因为是从零开始的)
感悟:离线算法在某种情况下可以降低复杂度的维度。
代码如下:
1 #include2 #include 3 #include 4 #define met(a,b) memset(a,b,sizeof(a)) 5 #define N 200005 6 #define M 1000001 7 using namespace std; 8 struct nod{ 9 int x,y,index,type,v;10 }a[N];11 int tree[M];12 bool cmp(nod a,nod b){13 if(a.y==b.y)return a.x 0;i-=lowbit(i))35 sum+=tree[i];36 return sum;37 }38 int main(void){39 for(int times=1;~scanf("%d%d",&n,&m);++times){40 init();41 for(k=0;k