POJ 2352 - Stars 排序后用树状数组处理+离散化
来源:互联网 发布:安阳淘宝客服公司招聘 编辑:程序博客网 时间:2024/05/22 14:20
题意:
在x,y坐标系下有N(N<=15000)个星星...一个星星的等级是x,y(x,y<=32767)坐标都不超过它的星星个数..现在问0~N-1个等级各有多少个星星..
题解:
和POJ2481差不多..甚至要方便很多..因为不是输出每个星星的信息..只是统计..所以没必要对线段记录原始位置了..又题意保证不会出现相同的点..所以不用来维护相同的点..排好序..直接用树状数组搞就是...比较恶心的是..直接用y坐标作为树状数组的下标会超时..但y坐标比N要少..所以离散化后..170ms就AC了..
Program:
#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<stack>#include<algorithm>#include<cmath>#include<set>#include<map>#include<time.h>#define ll long long#define oo 1000000009#define MAXN 15000#define pi acos(-1.0)#define esp 1e-30#define MAXD 4using namespace std; struct node{ int x,y;}L[MAXN];int N,sum[MAXN+2],ans[MAXN+2],Y[MAXN+2];bool cmp(node a,node b){ if (a.x!=b.x) return a.x<b.x; return a.y<b.y;}void update(int x,int k){ while (k<=N) { sum[k]+=x; k+=k&(-k); }}int query(int k){ int ans=0; while (k) { ans+=sum[k]; k-=k&(-k); } return ans;} int bsearch(int y){ int l=0,r=N+1,mid; while (r-l>1) { mid=r+l>>1; if (Y[mid]>y) r=mid; else l=mid; } return l;}int main(){ int i,y; scanf("%d",&N); for (i=1;i<=N;i++) scanf("%d%d",&L[i].x,&L[i].y),Y[i]=L[i].y; sort(L+1,L+1+N,cmp),sort(Y+1,Y+1+N); memset(sum,0,sizeof(sum)); memset(ans,0,sizeof(ans)); for (i=1;i<=N;i++) { y=bsearch(L[i].y); ans[query(y)]++,update(1,y); } for (i=0;i<N;i++) printf("%d\n",ans[i]); return 0;}
- POJ 2352 - Stars 排序后用树状数组处理+离散化
- POJ-2352 Stars (树状数组,离散,排序)
- POJ 2352 Stars 树状数组
- POJ 2352 Stars【树状数组】
- (树状数组) poj 2352 Stars
- POJ-2352-Stars-树状数组
- POJ 2352 Stars 树状数组
- POJ 2352 Stars 【树状数组】
- POJ 2352 Stars 树状数组
- POJ-2352 Stars【树状数组】
- POJ 2352 Stars 树状数组
- poj 2352 Stars 树状数组
- poj 2352 Stars 树状数组
- POJ:2352 Stars(树状数组)
- [树状数组]POJ 2352 Stars
- POJ-2352-Stars 树状数组
- Stars - POJ 2352 树状数组
- poj 2352 Stars 树状数组
- 如何从10亿查询词找出出现频率最高的10个?
- 为什么要坚持写博客
- SSH客户端显示中文乱码问题的解决
- Python Challenge(6--7关)——我的解题报告(running with python3.x)
- 程序员求职攻略(《程序员面试笔试宝典》)之面试笔试技巧?
- POJ 2352 - Stars 排序后用树状数组处理+离散化
- 【HZOI】 Path
- json 使用详细教程
- Android 漫游之路------Android下junit单元测试、logCat的使用
- ios开发-應用程式的設定檔info.plist
- Android源代码分析(三) MediaScanner源码分析(下)
- 【HZOI】 赏花
- Android开发之向应用程序界面绑定数据
- 111