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 ;
}

POJ2352:Stars——题解的更多相关文章

  1. POJ-2352 Stars 树状数组

    Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39186 Accepted: 17027 Description A ...

  2. poj2352 Stars【树状数组】

    Astronomers often examine star maps where stars are represented by points on a plane and each star h ...

  3. POJ2352 Stars 树状数组

    emm,ssy说可以直接CDQ分治...%%%但是注意到y是有序的,所以可以直接求一下前缀和就行了. 题干: Astronomers often examine star maps where sta ...

  4. POJ2352 Stars [树状数组模板]

    题意:输入一n颗星星的x,y坐标,给定判断level的标准,即某颗星星左下边(不高于它,不超过他,相当于以他为基准的第三象限)星星的数目为level, 输出level从0到n的星星个数. //poj2 ...

  5. POJ2352 Stars (静态二叉检索树)

    https://vjudge.net/problem/POJ-2352 分析: 由于是按照y坐标的升序,y坐标向等的按x的升序的顺序给出星星.那么某个星星的等级数就是在他前面x坐标小于等于他的x坐标的 ...

  6. poj2352 Stars

    http://poj.org/problem?id=2352 #include <cstdio> #include <cstring> #define maxn 400000 ...

  7. 【二维偏序】【树状数组】【权值分块】【分块】poj2352 Stars

    经典问题:二维偏序.给定平面中的n个点,求每个点左下方的点的个数. 因为 所有点已经以y为第一关键字,x为第二关键字排好序,所以我们按读入顺序处理,仅仅需要计算x坐标小于<=某个点的点有多少个就 ...

  8. [POJ2352] Stars(树状数组)

    传送门 先按照下标x排序,然后依次把y加入树状数组,边加入边统计即可. 注意下标re从零开始,需+1s ——代码 # include <iostream> # include <cs ...

  9. 树状数组 poj2352 Stars

    2019-05-20 22:52:07 加油,坚持,加油,坚持 !!! #include<iostream> #include<cstdio> #include<cstr ...

随机推荐

  1. HashMap在并发场景下踩过的坑

    本文来自网易云社区 作者:张伟 关于HashMap在并发场景下的问题有很多人,很多公司遇到过!也很多人总结过,我们很多时候都认为这样都坑距离自己很远,自己一定不会掉入这样都坑.可是我们随时都有就遇到了 ...

  2. 后续博客转移到zhylj.cc

    此博客暂不更新了 zhylj.cc

  3. Jmeter使用之:高效组织接口自动化用例技巧

    Jmeter怎么使用的文章多如牛毛,但怎么组织好测试用例,则几乎很难看到.在本文,我将把Jmeter下怎么组织测试用例的几点心得分享给大家,希望能给你一些帮助或启示. 1.善用“逻辑控制器”中的“简单 ...

  4. Python序列及其操作(常见)

    python序列及函数入门认识: 0. 我们根据列表.元组和字符串的共同特点,把它们三统称为什么?    序列,因为他们有以下共同点: 1)都可以通过索引得到每一个元素 2)默认索引值总是从0开始(当 ...

  5. 《Effective C++》读书笔记 条款02 尽量以const,enum,inline替换#define

    Effective C++在此条款中总结出两个结论 1.对于单纯常量,最好以const对象或enum替换#define 2.对于形似函数的宏,最好改用inline函数替换#define 接下来我们进行 ...

  6. 计蒜客蓝桥杯模拟赛 后缀字符串:STL_map+贪心

    问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来  ...

  7. Paper Reading - Learning to Evaluate Image Captioning ( CVPR 2018 ) ★

    Link of the Paper: https://arxiv.org/abs/1806.06422 Innovations: The authors propose a novel learnin ...

  8. Deep Residual Learning for Image Recognition论文笔记

    Abstract We present a residual learning framework to ease the training of networks that are substant ...

  9. 使用truffle测试部署合约

    truffle console let contract; contract=BloggerCoin.deployed().then(instance=>contract=instanc e);

  10. Python-期末练习

    1.骑车与走路:我们的校园很大很大很大大大大大……,骑个自行车去办事会很快,比如取个快递了,到其他宿舍楼找个同(nv)学(you)了.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车.开锁.停车 ...