蓝桥杯刷题-数星星

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;
}
相关推荐
Raink老师6 小时前
【AI面试临阵磨枪-79】实时数据 RAG:订单、商家、物流、天气、动态库存
人工智能·面试·职场和发展
Cosolar6 小时前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
秦明月1311 小时前
电芯装配测试线安全回路设计实战
经验分享·其他·职场和发展·创业创新·学习方法
程序员小远12 小时前
系统性能指标全解析
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
如竟没有火炬13 小时前
乘法表中第K小的数——二分
开发语言·数据结构·python·算法·leetcode·职场和发展·动态规划
凯瑟琳.奥古斯特13 小时前
选择题专练数据库原理精选30题
开发语言·数据库·职场和发展·数据库开发
Engineer邓祥浩14 小时前
软件设计师备考 第0章 题型分布、示例、学习路线
学习·职场和发展
x_xbx16 小时前
LeetCode:739. 每日温度
算法·leetcode·职场和发展
Trouvaille ~17 小时前
【优选算法篇】深入浅出链表算法:交换、重排与合并的终极策略
c++·算法·链表·面试·蓝桥杯·笔试·后端开发