AC. 梦想

frank_c1

[BZOJ 3262] 陌上花开

发布于2016年01月30日 | 暂无评论 | 644阅读 | CDQ分治

题目描述

有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),又三个整数表示。现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。

输入格式

第一行为N,K (1 <= N <= 100,000, 1 <= K <= 200,000 ), 分别表示花的数量和最大属性值。

以下N行,每行三个整数si, ci, mi (1 <= si, ci, mi <= K),表示第i朵花的属性。

输出格式

包含N行,分别表示评级为0...N-1的每级花的数量。

题目解析

伟大的CDQ,您真是我们的红太阳!

再一次被CDQ分治的力量所折服。本题是裸的三维数点问题,类比于二维数点,我们用降维的思想来做。先去重,第一维直接排序,后两维套用CDQ分治,用树状数组维护即可。