HDU 1541 Stars (树状数组)

HDU 1541 Stars (树状数组)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Problem 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.

HDU 1541 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

 

直接统计不大于当前数的个数,然后hash记录。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <set>
#include <stack>
#include <cctype>
#include <algorithm>
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
using namespace std;
typedef long long LL;
const int mod = 99999997;
const int MAX = 0x3f3f3f3f;
const int maxn = 15050;
const int N = 32005;
int n, a, b;
int c[N], ans[maxn];
int main()
{
    while(~scanf("%d", &n)) {
        memset(c, 0, sizeof(c));
        memset(ans, 0, sizeof(ans));
        int k = 0;
        for(int i = 1; i <= n; i++) {
            scanf("%d%d", &a, &b); a++;
            int sum = 0;
            for(int j = a; j > 0; j -= j&(-j)) sum += c[j];
            for(int j = a; j <= N; j += j&(-j)) c[j]++;
            ans[sum]++;
        }
        for(int i = 0; i < n; i++) printf("%d\n", ans[i]);
    }
    return 0;
}



版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117088.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月10日 下午11:00
下一篇 2022年1月10日 下午11:00


相关推荐

  • TCP的三次握手与四次挥手理解及面试题(很全面)

    TCP的三次握手与四次挥手理解及面试题(很全面)本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文…

    2022年5月5日
    38
  • PageRank算法详解

    PageRank算法详解PageRank 算法详解主要内容 PageRank 算法简介 PageRank 算法详解基本 PageRank 模型终止点问题陷阱问题解决终止点问题和陷阱问题 1 PageRank 算法简介 PageRank 网页排名 又称网页级别或佩奇排名 是一种根据网页间相互超链接进行网页排名的技术 以 Google 公司创办人拉里 佩奇 LarryPage 之姓来命名 Google 用它来体现网页的相关

    2026年3月17日
    2
  • Pycharm安装第三方库失败、速度慢

    Pycharm安装第三方库失败、速度慢Pycharm 安装注意事项一 解决第三方库安装慢 失败问题 1 单独装 python 不要用它自带的 Inkscape 并为 python 配置系统环境变量 2 单独安装 pip 并配置系统环境变量 python 安装目录下 script 文件夹 3 newpreject 选 interpreter 时选择自己装的 python 版本 不要选择默认的 Inkscape4 修改安装源 将默认源 https pypi python org simple 修改为清华源 https pypi tuna tsinghua edu c

    2026年3月27日
    1
  • nslookup命令的使用方法_nslookup测试命令

    nslookup命令的使用方法_nslookup测试命令介绍nslookup(nameserverlookup)是和dig类似的命令,都是用来查询域名信息的指令,但是在功能上没有dig强大,这个指令在Windows系统是自带的,要想在Linux中使用,就需要下载和dig相同的工具包使用nslookupdomain[dnsserver]#domain:要查询的域名dnsserver:指定域名服务器,如果不指定,系统就会使用默认的DNS服务器如果没有指定查询的服务类型,系统会默认查询A记录查询其他的服务nsloo

    2022年10月18日
    7
  • 星火赋能教育数字化应用,科大讯飞亮相2025世界数字教育大会

    星火赋能教育数字化应用,科大讯飞亮相2025世界数字教育大会

    2026年3月14日
    2
  • 前端页面倒计时+自动跳转功能(setTimeout和setTimeInterval两种实现)

    前端页面倒计时+自动跳转功能(setTimeout和setTimeInterval两种实现)8 秒倒计时 p spanid time 秒后自动跳转到老版本 spanid time p js 部分 functioncoun secs url secs 设置倒计时秒数 url 要跳转的链接 vartime document getElementBy time time innerHTML secs 页面上显示所设定的倒计时时长 if

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号