蓝桥杯刷题-数星星

1265. 数星星 - AcWing题库

cpp 复制代码
/* 题目中的y是递增,不影响 */
/* 直接看作一维数组的更新维护 */
/* 将数据二进制化,拿最低位的1 */
/* 转化为线段树的解法才是核心 */
/* 思想是前缀和 */
#include <bits/stdc++.h>

using namespace std;

const int N = 15010 , M = 32010;

int level[M];
int tr[M];
int n;
/* 求最低位的1 */
int lowbit(int x)
{
    return x&-x;
}
/* 树状数组 */
int add(int x, int v)
{
    for(int i = x;i <= M;i += lowbit(i)) tr[i] += v;
}
/* 查询 */
int qy(int x)
{
    int ans = 0;
    for(int i = x; i ;i -= lowbit(i))
    {
        ans += tr[i];
    }
    return ans;
}

int main()
{
    /* 读入 */
    cin >> n;
    for(int i = 0;i < n;i ++)
    {
        int x , y;
        cin >> x >> y;
        x ++; //防止出现0的情况
        level[qy(x)] ++; // 前缀和结果
        add(x ,1);
    }
    for(int i = 0;i < n;i ++) 
        cout << level[i] << endl;
    return 0;
}
相关推荐
项管芝士1 小时前
PMP认证备考全攻略:费用、周期与机构选择常见问题解答
职场和发展·职场发展
小徐不徐说3 小时前
面试C++易错点总结
开发语言·c++·面试·职场和发展·程序设计·工作
YummyJacky4 小时前
阿里ai应用开发面试
面试·职场和发展
y = xⁿ4 小时前
20天速通LeetCode day08:关于栈
算法·leetcode·职场和发展
WYiQIU5 小时前
宇树科技Web前端岗(AI方向),这不算泄题吧......
前端·vue.js·人工智能·笔记·科技·面试·职场和发展
HY小宝F6 小时前
破局研发管理“双面角色”:从小团队救火走向系统化治理
职场和发展
云泽8086 小时前
第十五届蓝桥杯大赛软件赛省赛C/C++大学B组
c语言·c++·算法·蓝桥杯
fysuccess8 小时前
Ubuntu 22.04 零基础安装 Hermes 完整入门指南
linux·ubuntu·蓝桥杯
一只机电自动化菜鸟9 小时前
一建机电备考笔记(21):石油化工设备(含考频+易错点)
经验分享·笔记·学习·职场和发展·课程设计