http://poj.org/problem?id=2352

Astronomers晚上仰望星空,看到了很多星星。回到办公桌,Astronomers将这些星星画到二维坐标系,每个星星的坐标都是整数。例如5个星星,坐标分别为(1,1), (5,1), (7,1), (3,3), (5,5):

Astronomers想对这些星星定等级,规则是这样的:每个星星左下角有几个星星,它就算几级(包含左边和下面)。上面的例子,第1颗星星的等级为0,等2颗星星的等级为1,第3颗星星的等级为2,第4颗星星的等级为1,第5颗星星的等级为3。

所以,等级为0的星星有1颗,等级为1的星星有2颗,等级为2的星星有1颗,等级为3的星星有1颗,等级为4的星星为0颗。

给定N个星星坐标,没有两个星星坐标在一起,问你等级为0~N-1的星星数量是多少。

首先对于星星坐标按照先y后x排序,然后按照x的坐标加星星个数统计即可。

****注意星星坐标可能从0开始,所以最开始我们对坐标+1。

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
inline ll read(){
int X=,w=; char ch=;
while(ch<''||ch>''){w|=ch=='-';ch=getchar();}
while(ch>=''&&ch<='')X=(X<<)+(X<<)+(ch^),ch=getchar();
return w?-X:X;
}
const int N=;
struct node{
int x;
int y;
}star[];
bool cmp(node a,node b){
if(a.y<b.y)return ;
if(a.y>b.y)return ;
if(a.x<b.x)return ;
return ;
}
int n,m;
ll tree[N];
ll ans[];
inline int lowbit(int t){return t&(-t);}
void add(int x,int y){
for(int i=x;i<=N;i+=lowbit(i))tree[i]+=y;
return;
}
ll query(int x){
ll res=;
for(int i=x;i>;i-=lowbit(i))res+=tree[i];
return res;
}
int main(){
n=read();
for(int i=;i<=n;i++){
star[i].x=read()+;
star[i].y=read()+;
}
sort(star+,star+n+,cmp);
for(int i=;i<=n;i++){
int t=query(star[i].x);
ans[t]++;
add(star[i].x,);
}
for(int i=;i<n;i++){
printf("%lld\n",ans[i]);
}
return ;
}

最新文章

  1. 浅玩JavaScript的数据类型判断
  2. 使用for循环遍历数组
  3. node.js 基础学习笔记2
  4. AutoLayout技术选型和应用
  5. 钉子和小球_DP
  6. 常用的CSS缩写语法一些方法小结
  7. LinkButton中添加删除确认框
  8. 10个优秀的 HTML5 &amp;amp; CSS3 下拉菜单制作教程
  9. body全屏
  10. C++ set用法以及迭代器用法
  11. idea git将多余的代码提交到本地,如何退回。
  12. font-family 中文字体列表
  13. mybatis一级缓存详解
  14. sed 笔记
  15. redis源码分析
  16. linux erase
  17. (转)Thread中yield方法
  18. C# MD5一句话加密
  19. 关于JqueryCheck选中获取数据
  20. 2013年度最新最佳CSS网页设计实例

热门文章

  1. LiteOS创建任务的一个BUG
  2. 文件包含漏洞(RFI)
  3. Selenium(Python)页面对象+数据驱动测试框架
  4. 怎样下载Firefox与Chrome浏览器驱动
  5. 前后端分离.net core + vuejs + element
  6. Python字符串操作大全(非常全!!!)
  7. 应用UserDefaults储存游戏分数和最高分
  8. Linux中常用Shell命令
  9. 今日头条 2018 AI Camp 5 月 26 日在线笔试编程题第一道——最佳路径
  10. HDU 4115 Eliminate the Conflict(2-SAT)(2011 Asia ChengDu Regional Contest)