首页 > 代码库 > POJ2352 Stars 树状数组
POJ2352 Stars 树状数组
POJ2352 非常裸的树状数组的题。 注意数组下标不能从0开始 因为lowbit(0)==0 所以 所有横坐标统一加1 数组要开的够大 就酱
#include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> using namespace std; const int maxn=15000,maxx=64000+1; int Tree[maxx],ans[maxn]; inline int lowbit(int x) { return x&(-x); } void add(int x,int value) { for(int i=x;i<=maxx;i+=lowbit(i)) { Tree[i]+=value; } } int get(int x) { int sum=0; for(int i=x;i;i-=lowbit(i)) sum+=Tree[i]; return sum; } int main() {freopen("t.txt","r",stdin); memset(ans,0,sizeof(ans));memset(Tree,0,sizeof(Tree)); int n; scanf("%d",&n); int x,y; for(int i=0;i<n;i++) { scanf("%d%d",&x,&y); x++; ans[get(x)]++; add(x,1); } for(int i=0;i<n;i++) printf("%d\n",ans[i]); return 0; }
POJ2352 Stars 树状数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。