POJ_2352 Stars

POJ-2352(Stars)树状数组解法 题目原网址:http://poj.org/problem?id=2352又是一道星星的题,下面是题目描述(本人翻译):题目描述天文学家经常检查星图,其中恒星由平面上的点表示,每颗恒星都有笛卡尔坐标。让恒星的水平是恒星的数量,而恒星并不高于恒星的右边。天文学家想知道恒星的分布。例如,查看上图中显示的地图。星号5的水平等于3(它由三颗星形成,数字为1,2和4)。而且,编号为2和4的恒星的等级为1.在该... 阅读详情

Stars

链接

POJ_2352 Stars

Description

Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are not higher and not to the right of the given star. Astronomers want to know the distribution of the levels of the stars.
图例

For example, look at the map shown on the figure above. Level of the star number 5 is equal to 3 (it’s formed by three stars with a numbers 1, 2 and 4). And the levels of the stars numbered by 2 and 4 are 1. At this map there are only one star of the level 0, two stars of the level 1, one star of the level 2, and one star of the level 3.
You are to write a program that will count the amounts of the stars of each level on a given map.
大意:
天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的。
给定星星的位置,输出各级星星的数目。

Input

The first line of the input file contains a number of stars N (1<=N<=15000). The following N lines describe coordinates of stars (two integers X and Y per line separated by a space, 0<=X,Y<=32000). There can be only one star at one point of the plane. Stars are listed in ascending order of Y coordinate. Stars with equal Y coordinates are listed in ascending order of X coordinate.
大意:
给定n个点,定义每个点的等级是在该点左下方(含相等)的点的数目,试统计每个等级有多少个点。每个点按照y坐标升序排列,y坐标相同的按照x坐标升序排列。(n<=15000,0<=x,y<=32000)

Output

The output should contain N lines, one number per line. The first line contains amount of stars of the level 0, the second does amount of stars of the level 1 and so on, the last line contains amount of stars of the level N-1.

Sample Input

5
1 1
5 1
7 1
3 3
5 5

Sample Output

1
2
1
1
0

Hint

This problem has huge input data,use scanf() instead of cin to read data to avoid time limit exceed.

思路

  1. 由于后输入的点的y坐标一定小于先输入的点的y坐标,所以后输入的点必定在先输入的点的上方。这使得我们在统计星星的个数时不需要考虑y坐标的影响。
  2. 每输入一个点,就将树状数组中对应的x坐标的位置+1,表示该x坐标处增加一个点。同时做一次统计,统计处该点外x坐标小于等于该点的点一共有几个,这个统计出来的数就是该点的等级。
  3. 点的坐标会有0,但树状数组不能有0,所以每个输入的x坐标要+1之后才能做运算。

代码

#include<algorithm>
#include<cstdio>
using namespace std;
const int m=32000+1;
int n,x,y,a[m+1],c[m+1],s[m+1];
int lb(int i)
{
	return i&(-i);
}
void add(int i)
{
	while(i<=m)
	{
		a[i]++;
		i+=lb(i);
	}
}
int sum(int i)
{
	int cou=0;
	while(i>0)
	{
		cou+=a[i];
		i-=lb(i);
	}
	return cou;
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&x,&y);
		add(x+1);//加入树状数组并修改树状数组
		c[sum(x+1)-1]++;//计算该点的等级(sum(x+1)-1)并记录
	}
	for(int i=0;i<n;i++)
		printf("%d\n",c[i]);
	return 0;
}
数据分析学习总结笔记02:聚类分析及其R语言实现 ** 数据分析学习总结笔记02:聚类分析Cluster Analysis ** 1. 聚类分析概述 1.1 聚类分析的直观理解 在科学研究、社会调查或日常生活中,通过观察个体的特征,将群体中的个体归为不同的族群/簇(Cluster)。 2. 聚类分析的方法 3. 聚类分析的应用 3.1 市场营销——精准营销 在市场营销中,基于消费者的历史交易信息、消费者背景等对消费者进行划分,从而对不同类型的消费... 阅读详情

相关推荐

37张图详解MAC地址、以太网、二层转发、VLAN

MAC 地址 每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。 MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。 现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保.

networktp的博客 4745

poj_2352Stars

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25880   Accepted: 11309 Description Astronomers often examine star maps where stars are represented b

晚晴小筑 1126

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

POJ2352 Stars & POJ2481 Cows 树状数组的应用

POJ2352 题目链接 1.题目大意是输入一堆坐标,然后y坐标是排好序的,定义了一个“高度”,就是某个星星左下角(包括正左和正下)的星星个数,然后按“高度”有小到大输出每个“高度”的星星个数 2.首先看到这题目觉得很玄乎,似乎看起来挺简单但是无可下手,写了个暴力,但转身一想肯定超时。但是自己似乎掌握的技能里边没有能直接应用到这道题的。去网上看发现都是树状数组的解法,线段树也很少。搞懂树状数组后,...

Happig的博客 291

嵌入式开发必备:UART、RS232、RS485通信协议实战对比(附代码示例)

本文从嵌入式开发实战角度,深度对比了UART、RS232和RS485三种核心串行通信协议。详细解析了它们的工作原理、硬件连接、代码配置及典型应用场景,并提供了基于通信距离、节点数量和电磁环境的三维度选型指南,帮助开发者根据项目需求做出最优技术决策。

i0j1k2l3m的博客 474

麒麟系统下的多媒体革命:VLC在kylinV10上的性能优化与调试技巧

本文详细介绍了在麒麟kylinV10系统上优化VLC多媒体播放性能的实战技巧,特别针对飞腾FT-2000/4硬件平台。从源码编译调优到硬件加速配置,提供全面的性能提升方案,帮助开发者在国产操作系统上构建高效媒体播放环境。

weixin_29168675的博客 457

poj2352(线段树或树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26238   Accepted: 11448 Description Astronomers often examine star maps where stars are represented by po

晓风残月xj 974

Redis+QMT实战:如何用Stream模式实现聚宽策略的毫秒级跟单(附完整代码)

本文详细介绍了如何利用Redis Stream模式构建一个低延迟、高可靠的量化交易信号中继系统,实现从聚宽策略到本地QMT的毫秒级跟单。通过对比传统方案,解析了Redis Stream在消息持久化、消费组和显式确认方面的核心优势,并提供了完整的架构设计思路与核心代码实现,帮助量化开发者解决云端策略信号稳定传递至本地实盘的难题。

weixin_29280657的博客 477

Poj 2352 解题报告

Stars Time Limit: 1000MS Memory Limit: 65536K Description Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the leve

doing100的专栏 539

6.3 节深度拆解:Hermes Agent 多 Agent 协同执行链路的 4 层设计逻辑

拆解 Hermes 多 Agent 协同的 4 层工程化设计(协议层、编排层、执行层、适配层),聚焦协议层的强约束消息 Schema 如何解决 Agent 间语义不一致问题,并提供 `soul.md` 配置、GLM-4.7Flash 结构化输出验证及 v0.13.0/v0.14.0 版本实操避坑指南

weixin_42520239的博客 122

Python 爬虫实战:爬取哔哩哔哩知识区,抓取高赞课程信息

哔哩哔哩(Bilibili)是一个广受欢迎的综合性视频社区,其中的知识区汇聚了大量优质的教育、科普、技术等课程内容。本文将指导读者如何使用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息,并进行数据分析。本文深入探究了利用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息的全流程。从前期的环境搭建、模拟登录,到核心的课程数据抓取、存储,再到后续的数据分析与可视化,都详细展开讲解并提供代码支持。通过此方法所获取的数据,能够助力创作者优化内容、用户发现优质课程、平台洞察用户需求。

u014481728的博客 1136

POJ - 2352  Stars

POJ - 2352  Stars Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that ...

YIU 330

【VS Code插件开发】通用功能(二)

本篇主要从command(命令)、menus(菜单)、快捷键三个方面讲解,都归于通用功能。

编码世界 1万+

POJ-2352-Stars

POJ-2352-Stars http://poj.org/problem?id=2352 给出n个星星的坐标,如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的,统计每个等级有多少个点。这题可用树状数组,对于每个星星按y坐标从小到大排序,相同y坐标按x坐标从小到大排序(题目中数据已经有序),输入顺序已排好序,那么只要依次统计星星i之前x坐标小于等于i.x的星星有多少,即是

菜鸟的程序人生 2433

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

poj 2352 Stars(线段树)

poj 2352 Stars(线段树)

PKU_ZZY的博客 885

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ 2352 Stars

POJ 2352 Stars Description Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of th...

anhaoti3785的博客 117

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

树状数组 poj2352 Stars

2019-05-20 22:52:07 加油,坚持,加油,坚持 !!! #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int MAXN = 32005; int c[MAXN],level[MAXN],n; ...

weixin_30662109的博客 92

【树状数组】POJ 2352 Stars

POJ 2352 Stars 题意:在笛卡尔坐标系上给出星星坐标,按照y坐标升序(y坐标相等,x坐标升序)给出。规定星星的等级为其左下方的星星数量,求各等级的星星的个数。 思路:由于星星是按照y坐标升序(y坐标相等,x坐标升序)给出的,所以我们找该星星的左下的星星数量,就是当前输入该星星坐标之后getsum(x)-1,“-1”是因为要减去该星星本身。 注意:为了防止add( 0 ),所以我们每个...

L_X_ 167

POJ2352 Stars

题目大意: 在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0 按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。 一维的树状数组,

alpc_wt的专栏 634

POJ 2352 Stars(树状数组)

题目链接: POJ 2352 Stars 题意: 每个星星的level是纵坐标小于等于它并且横坐标小于它的星星的数量。按照y从小到大,其次x从小到大的顺序给出n个星星的坐标,输出level从0到n-1的星星的数量。 分析: 由于给出的坐标是优先按照y排序的,那么直接对每个星星查找x的树状数组值然后更新就好了。//556K 375MS #include <cstdio> #include <

ramay7 447

POJ 2352 Stars (线段树)

POJ 2352 Stars (线段树) 手动博客搬家:本文发表于20170819 22:11:49, 原地址https://blog.youkuaiyun.com/suncongbo/article/details/77417650 URL: http://poj.org/problem?id=2352 题目大意:给定n个点(n<=15000), 每个点有坐标(x, y...

suncongbo's blog 112
上一篇: SSL_2648 线段树练习五
下一篇: Luogu_P4140 奇数国
银河工程师
博客等级 码龄6年 7粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值