蓝桥杯刷题-数星星

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;
}
相关推荐
嘻嘻哈哈樱桃2 小时前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
生信研究猿3 小时前
leetcode 416. 分割等和子集
算法·leetcode·职场和发展
待bong6 小时前
蓝桥杯EDA客观题(自己收集的)
职场和发展·蓝桥杯
沉默-_-6 小时前
备战蓝桥杯-哈希
c++·学习·算法·蓝桥杯·哈希算法
Reese_Cool6 小时前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
pqq的迷弟6 小时前
面试整理:HashMap\ConcurrentHashMap原来
java·面试·职场和发展
玛丽莲茼蒿8 小时前
Leetcode hot100 多数元素【简单】
算法·leetcode·职场和发展
_深海凉_8 小时前
LeetCode热题100-杨辉三角
算法·leetcode·职场和发展
_日拱一卒9 小时前
LeetCode:23合并K个升序链表
java·数据结构·算法·leetcode·链表·职场和发展
Chase_______9 小时前
LeetCode 1343 题解:定长滑动窗口经典入门题,从暴力枚举到高效优化一文搞懂
算法·leetcode·职场和发展