#854. 星星数量
星星数量
题目描述
定义星星的等级为它左下角的星星的数量 ( 即坐标满足x'≤x且y'≤y的星星数 )。 给你 n 个星星的坐标 ( 按先 y 递增,再 x 递增的顺序给 ),让你求出 0 ~ (n - 1) 各个等级星星的个数。
输入格式
第一行输入一个整数 n (0<n<=10000)。 第二行开始 n 行,每行两个数表示星星的坐标x,y。 数据保证 n 个星星的坐标,先按 y 递增,再 按 x 递增的顺序给。
输出格式
输出 n 行,表示 0 ~ (n - 1) 各个等级星星的个数。
样例
输入样例 1
5
1 1
5 1
7 1
3 3
5 5
输出样例 1
1 2 1 1 0
输入样例 2
1
0 0
输出样例 2
1
输入样例 3
2
0 0
1 0
输出样例 3
1 1
提示
思路:输入已按y升序排列,因此处理到第i个星星时,所有已处理的星星的y值均≤当前星星的y值。只需统计已处理星星中x值≤当前x的个数,即为当前星星的等级。 利用树状数组维护 x 坐标的出现次数。正序处理,每出现一个星星,先通过前缀和得到这个星星的等级并更新等级数组,再单点更新x坐标上星星的个数。 (因为 x 有 0 ,而树状数组不加 c[0] ,因此将 x + 1 后处理即可)