POJ2352:Stars——题解
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——题解的更多相关文章
- POJ-2352 Stars 树状数组
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39186 Accepted: 17027 Description A ...
- poj2352 Stars【树状数组】
Astronomers often examine star maps where stars are represented by points on a plane and each star h ...
- POJ2352 Stars 树状数组
emm,ssy说可以直接CDQ分治...%%%但是注意到y是有序的,所以可以直接求一下前缀和就行了. 题干: Astronomers often examine star maps where sta ...
- POJ2352 Stars [树状数组模板]
题意:输入一n颗星星的x,y坐标,给定判断level的标准,即某颗星星左下边(不高于它,不超过他,相当于以他为基准的第三象限)星星的数目为level, 输出level从0到n的星星个数. //poj2 ...
- POJ2352 Stars (静态二叉检索树)
https://vjudge.net/problem/POJ-2352 分析: 由于是按照y坐标的升序,y坐标向等的按x的升序的顺序给出星星.那么某个星星的等级数就是在他前面x坐标小于等于他的x坐标的 ...
- poj2352 Stars
http://poj.org/problem?id=2352 #include <cstdio> #include <cstring> #define maxn 400000 ...
- 【二维偏序】【树状数组】【权值分块】【分块】poj2352 Stars
经典问题:二维偏序.给定平面中的n个点,求每个点左下方的点的个数. 因为 所有点已经以y为第一关键字,x为第二关键字排好序,所以我们按读入顺序处理,仅仅需要计算x坐标小于<=某个点的点有多少个就 ...
- [POJ2352] Stars(树状数组)
传送门 先按照下标x排序,然后依次把y加入树状数组,边加入边统计即可. 注意下标re从零开始,需+1s ——代码 # include <iostream> # include <cs ...
- 树状数组 poj2352 Stars
2019-05-20 22:52:07 加油,坚持,加油,坚持 !!! #include<iostream> #include<cstdio> #include<cstr ...
随机推荐
- Redis系列九 Redis集群
1. redis-cluster架构图 redis-cluster投票:容错 架构细节 ①所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. ②节点的fai ...
- 第二章 IP协议详解
第二章 IP协议详解 2.1 IP服务的特点 它为上层协议提供了无状态,无连接,不可靠的服务 名称 简介 优点 缺点 对付缺点的方法 无状态 IP通信双方不同步传输数据的状态信息 无须为保持通信的状态 ...
- Unity操作小技巧
1.操作类 1)F:选择物体后聚焦 2)V:选择物体的顶点,顶点吸附 3)Ctrl:摁住后拖动物体,可以按照系统设置的步长进行移动(Edit -> Snap setting) 4)Q W E R ...
- 现实世界中的 Python
Python 有多稳定? 非常稳定. 自 1991 年起大约每隔 6 到 18 个月就会推出新的稳定发布版,这种状态看来还将持续下去. 目前主要发布版本的间隔通常为 18 个月左右. 开发者也会推出旧 ...
- [精通Python自然语言处理] Ch1 - 将句子切分为单词
实验对比了一下三种切分方式: 1,2 : nltk.word_tokenize : 分离缩略词,(“Don't” =>'Do', "n't") 表句子切分的“,” &quo ...
- 名人问题 算法解析与Python 实现 O(n) 复杂度 (以Leetcode 277. Find the Celebrity为例)
1. 题目描述 Problem Description Leetcode 277. Find the Celebrity Suppose you are at a party with n peopl ...
- java一些面试题
java虚拟机 什么时候会触发full gc System.gc()方法的调用 老年代空间不足 永生区空间不足(JVM规范中运行时数据区域中的方法区,在HotSpot虚拟机中又被习惯称为永生代或者永生 ...
- 一:yarn 介绍
yarn的了出现主要是为了拆分jobtracker的两个核心功能:资源管理和任务监控,分别对应resouceManager(RM)和applicationManager(AM).yarn中的任 ...
- 第四次作业之psp
psp 进度条 博文字数累积折线图 代码行数累积折线图 psp饼状图
- C# HttpWebRequest post提交数据,提交对象
1.客户端方法 //属于客户端 //要向URL Post的方法 public void PostResponse() { HttpWebRequest req = (HttpWebRequest)Ht ...