📄 1028_segtree.cpp
字号:
#include <cstdio>#include <cstddef>#include <iostream>#include <math.h>#define MAX_XY 32000#define MAX_COUNT 15000int vals[MAX_XY *4 +1] = {0};int lList[MAX_COUNT];using namespace std;void insertstar(int p, int b, int e, int x) { int m = (b+e) >> 1; if(e != b) { if(x <= m) { insertstar(p<<1, b, m, x); }else { insertstar((p<<1)+1, m+1, e, x); } } vals[p] ++;}int getlevel(int p, int b, int e, int x) { int m = (b+e) >> 1; if( e == b) { return vals[p]; } else { if( x == e) { return vals[p]; } else if(x > m) { return getlevel(p<<1, b, m, m) + getlevel((p<<1)+1,m+1, e, x); }else { return getlevel(p<<1, b, m, x); } }}void main() {int count = 0;int i=0;int sx,sy;//get star number//cin>>count;scanf("%d", &count);memset(lList, 0, sizeof(int)*MAX_COUNT);for(i =0;i<count;++i) {int lCur = 0;//current level//cin>>sx>>sy;scanf("%d %d", &sx, &sy);//get levellCur = getlevel(1, 0, MAX_XY, sx);lList[lCur]++;insertstar(1,0,MAX_XY,sx); /**////////////////////}for(i=0;i<count;++i) { printf("%d ",lList[i]);}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -