题目链接: Stars
大致题意
给出n个点坐标, 按照y升序的顺序, 若y相同, 则按照x升序的顺序.
一个点坐标小于另一个点坐标的含义是, 横纵坐标都不大于另一个点坐标(保证没有两个点坐标完全相同). 对于给出的n个点中, 定义该点等级为: 小于该点的所有坐标之和.
问: 对于0~n-1的所有等级, 输出有多少个点坐标为该等级.
解题思路
树状数组
这题是典型的 二维偏序问题. 由于按照y的升序给出, 所以我们可以在x轴上建立树状数组. 其内记录对于index位置, 有多少个点的x值 <= index.
AC代码
#define rep(i, n) for (int i = 1; i <= (n); ++i)
using namespace std<