POJ 2352 star (树状数组)

poj 2352 star 树状数组 Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20885   Accepted: 9097 Description Astronomers often examine star maps where stars are represented by p 阅读详情

Language:
Stars
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 35318 Accepted: 15326

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.

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. 

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.

Source



这一个题我发现了 当x=0时,x+lowbit(x)=0;所以必须x++,否则update(0)就会死循环




#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>


#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define eps 1e-8
typedef __int64 ll;

#define fre(i,a,b)  for(i = a; i <b; i++)
#define free(i,b,a) for(i = b; i >= a;i--)
#define mem(t, v)   memset ((t) , v, sizeof(t))
#define ssf(n)      scanf("%s", n)
#define sf(n)       scanf("%d", &n)
#define sff(a,b)    scanf("%d %d", &a, &b)
#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)
#define pf          printf
#define bug         pf("Hi\n")

using namespace std;

#define INF 0x3f3f3f3f
#define N 32005

struct stud{
 int x,y;
 bool operator <(const stud b) const
 {
     if(x==b.x)
       return y<b.y;
     return x<b.x;
 }
}f[15005];

int ans[N];
int c[N];
int ma,n;

inline int lowbit(int x)
{
    return x&(-x);
}

void update(int x)
{
    while(x<=ma)
    {
        c[x]++;
        x+=lowbit(x);
    }
}
int Sum(int x)
{
    int s=0;
    while(x)
    {
        s+=c[x];
        x-=lowbit(x);
    }
   return s;
}

int main()
{
    int i,j;
   
    sf(n);
    mem(ans,0);
    ma=-1;
    for(i=0;i<n;i++)
    {
         sff(f[i].x,f[i].y);
         f[i].y++;
         ma=max(ma,f[i].y);
    }

    sort(f,f+n);
    mem(c,0);

    for(i=0;i<n;i++)
    {
        int t=Sum(f[i].y);
        ans[t]++;
        update(f[i].y);
    }
    for(i=0;i<n;i++)
        pf("%d\n",ans[i]);

    return 0;

}


Oracle数据库RMAN异机恢复保姆级教程,按照步骤来操作,一次就成功! 本文深入解析RMAN异机恢复四大核心场景(演练、数据恢复、故障应急、测试环境搭建),提供从备份到验证的完整步骤和实战脚本。包含RAC到单机迁移技巧、路径调整、常见报错解决方案,助你彻底掌握数据库恢复的“救命技能”。DBA必备干货,强烈推荐 阅读详情

相关推荐

【faers数据库-R语言】

摘要:本文详细介绍了FAERS数据库不良反应信号挖掘的完整流程,包括数据解压导入(R代码示例)、数据结构理解、数据清洗(缺失值处理、标准化、合并和编码映射)、信号挖掘准备(药物-反应组合表创建)以及信号强度指标计算(PRR和ROR)。重点阐述了数据清洗的关键步骤,如缺失值处理(colSums(is.na()))、数据标准化(toupper()、as.Date())和表合并(merge()),并提供了完整的R语言实现代码。最后强调结果需结合临床知识解读,建议使用data.table等高效工具处理大数据。整个流

weixin_46587777的博客 1500

【树状数组】数星星(POJ2352 star…

【树状数组】数星星(POJ2352 star) Time Limit:1000MS  Memory Limit:65536K Total Submit:14 Accepted:9 Description 天文学家经常观察星象图。星象图中用平面上的点来表示一颗星星,每一颗星星都有一个笛卡尔坐标。设定星星的等级为其左下角星星的总数。天文学家们想知道星星等级的分布情况。 star)PASCAL"

m42ping的专栏 941

腾讯地图自定义瓦片地图开发实战:从坐标定位到图层融合

本文详细介绍了腾讯地图自定义瓦片地图开发的全流程,从坐标定位到图层融合的实战技巧。通过具体代码示例和常见问题解决方案,帮助开发者快速掌握腾讯地图API的自定义瓦片功能,实现室内外地图的无缝衔接和特殊图层的叠加展示。

weixin_42526015的博客 170

POJ 2352 Star 树状数组

题目链接 在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0 按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。 题目中输入是按照y递增,如果y相同则x递增的顺序给出的, 所以,对于第i颗星星,它的level就是之前出现过的星星中,横坐标x小于等于i星横坐标的那些星星的总数量(前面的y一定比

Joeferyの博客 519

EMC工程师职业发展:从测试整改到系统设计的进阶之路

电磁兼容(EMC)是确保电子设备在复杂电磁环境中可靠工作的关键技术,其核心在于控制电磁干扰(EMI)并提升抗扰度。其基本原理涉及电磁场理论、噪声耦合路径与滤波屏蔽技术。对于电子产品而言,EMC设计直接关系到能否通过CE、FCC等强制性认证,是产品上市和市场竞争力的关键。在工程实践中,EMC工程师需要从电路设计、PCB布局、元器件选型等源头入手,将EMC要求融入产品开发全流程,实现从后期“整改”到前期“设计预防”的价值跃迁。本文聚焦EMC工程师的核心能力体系构建与职业发展路径,深入探讨了如何从掌握标准测试、电

weixin_30819085的博客 387

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

POJ 2352 Star Treap||树状数组

发现这道题目用Treap居然可以做。。好吧,我从来没有想过,但是稍微思考一下发现这样也确实是有可行性,用Treap写完以后发现,用了500ms+,于是想看看用树状数组写要用多久,树状数组用了接近400ms,其实时间是差不多的,但是代码长度树状数组几乎是Treap的一半。。果然还是树状数组好写呀。                   Treap的想法是插入横坐标,因为纵坐标单调递增,所以每一次只需

Sion 361

最全中文停用词表(可直接复制)

最全的停用此表整理 词表名 词表文件 中文停用词表 cn_stopwords.txt 哈工大停用词表 hit_stopwords.txt 百度停用词表 baidu_stopwords.txt 机器智能实验室停用词库 scu_stopwords.txt 以上停用词表链接:https://github.com/goto456/stopwords 以下是我常用的1893个停用词,可直接复制 ! " # $ % & ' ( ) * + , - -- . .. ... ....

dilifish的博客 12万+

POJ 2352 Star (树状数组)

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

秋名山 322

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 228

FineReport 动态列切换统计维度

目标: 自己选择统计维度进行数据的汇总统计数据集参数实现动态列。

Davina_yu的博客 1053

树状数组入门之POJ 2352 Star

树状数组BIT(Binary index tree) 对于树状数组而要我们可以发现树状数组的那个图就是线段树的去掉所有右孩子节点得到的,因此树状数组相当于在线段树上做了一个优化,相当于去掉了一个常数,并且空间上也进行了优化,线段树通常需要比原来大小开4倍,但是树状数组就不用,但是树状数组只提供2种操作,一个就是询问1到x的所有数的和,另一个就是对单点进行更新,其他操作较为复杂。 操作一int s

你真的介意真的在乎真的想要真的渴望的话你一定能够做到 336

一键生成Microsoft Store应用直链下载:绕过商店故障的终极方案

遇到商店无法加载时,复制链接 → 粘贴到Adguard → 下载主程序包 → 开启开发者模式安装。整个过程耗时不超过2分钟,彻底摆脱商店依赖!

安德洛夫 2183

树状数组 POJ 2352 Star

#include #include using namespace std; #define SIZE 320010 #define CLR( arr, val ) memset( arr, val, sizeof(arr) ) int tree[SIZE]; int level[SIZE]; int max_size; int lowBit( int index ){

一刀不二 994

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

poj 2352 star(树状数组)

题目链接:http://poj.org/problem?id=2352 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 ...

永远鲜红の幼月的博客 174

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2020寒假集训专题五 POJ-2352 STAR题解(树状数组)

原题链接:http://poj.org/problem?id=2352 专题链接:https://vjudge.net/contest/352439#problem/A 思路 由于输入的星星坐标是有序的,我们只要记录下每次输入时星星的x值,并且判断有多少个x值小于或等于新输入的星星即可得知这个星星为几等(即求前缀和)。 无论是用暴力还是使用前缀和算法,复杂度都为O(n^2),是数据不能接受的。 ...

bllovepigpig的博客 224

poj 2352 star 树状数组的变型应用

StarsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 22968 Accepted: 10011DescriptionAstronomers often examine star maps where stars are represented by points on a plane and each star has

yangshuolll的专栏 794

POJ 2481 Cows

题目链接:http://poj.org/problem?id=2481 Cows Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 16528 Accepted: 5521 Description Farmer John's cows h

Silenceneo的ACM坎坷之路(已退役) 735

树状数组简单题(POJ2352,HDU1541)

POJ2352,HDU1541 Stars 给出N个点的X,Y坐标(按照Y升序,X升序的顺序给出),对于每个点输出有多少个点在该点的左下方。如图中的点5就有3个(1,2,4)点在它的左下方。 由于题目给出的数据已经是排好序的了,按照这个序列,一个点的左下方的点一定在它的前面出现。所以问题就转化成询问该点之前的所有点中有多少个点的X坐标小于等于该点X坐标。 所以只要先查询比X坐

计算机学习 587

POJ 2352 Stars(树状数组)

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

ramay7 447

POJ 2481 Cows && POJ 2352 Stars(树状数组妙用)

在二维坐标上给出一些星星的坐标,求某一个星星左方,下方,左下方的星星个数。题目已经把星星按照Y坐标从小到大,X从小到大排序。因此,在每次对一个星星进行统计时,之前出现过的星星,只要X坐标比其小,则必在其左,下,左下方。 树状数组储存X的坐标。 就像 求逆序数 的方法一样, 统计有多少之前的星星的X坐标小于当前的X坐标。 需要注意的是 X 坐标的范围是32000 ,所以树状数组要开到32000 而不是节点数15000。

Winjourn的专栏 1153

POJ-2352-Stars

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

java开发指南博客 【转载】 289

poj 2352 Stars (树状数组 +1 的运用)

题意就不说了!挺好读的!/* Subject: 树状数组 Sample : poj 2352 Stars */ #include #include #include #include #include #include #define Bug cout << "here\n"; using namespace std; const int N = 15005; co

so true_interview / 450

poj 2352 Stars (树状数组 + 1)

/* Subject: 树状数组 Author : a_clay Created Date : 2012-02-02 Sample : poj 2352 Stars */ #include #include #include #include #include #include #define Bug cout << "here\n"; using

so true_interview / 419

2352-Stars

(http://poj.org/problem?id=2352)/* POJ 2352 Stars 就是求每个小星星左小角的星星的个数。坐标按照Y升序,Y相同X升序的顺序给出 由于y轴已经排好序,可以按照x坐标建立一维树状数组 */ #include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> using na

Leo-Ares的博客 351

POJ 2352 Stars

POJ 2352 Stars AC代码: import java.util.Scanner; public class Main { static int maxn=32000; static int c[]=new int[maxn|1]; static Scanner scan=new Scanner(System.in); private static in

爪哇D来客 405
上一篇: POJ 2299 Ultra-QuickSort(逆序数 树状数组)
下一篇: HDU Non-negative Partial Sums (单调队列)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值