#M0001. 【模板】二维偏序

【模板】二维偏序

题目背景

这是 P3810 【模板】三维偏序 / 陌上花开 前置题。

保证没有重复点,数据随机,多种方法可以完成。

题目描述

n n 个元素,第 i i 个元素有 ai,bi a_i,b_i 两个属性,设 f(i) f(i) 表示满足 ajai a_j \leq a_i bjbi b_j \leq b_i ji j \ne i jj 的数量。

对于所有 d[0,n) d \in [0, n) ,求 f(i)=d f(i) = d 的数量。

保证没有重复点

输入格式

第一行两个整数 n,k n,k ,表示元素数量和最大属性值。

接下来 n n 行,每行三个整数 ai,bi a_i ,b_i ,分别表示两个属性值。

输入数据保证没有重复点(即不存在 iji\ne j ,ai=aja_i=a_jbi=bjb_i=b_j 的两个点)

输出格式

一个整数,表示两个数的积

5 10
1 2
3 4
1 3
2 5
10 10
1
1
2
0
1

样例1解释

将所有点排序,可以得到如下:

1 2 f[i]=0
1 3 f[i]=1
2 5 f[i]=2
3 4 f[i]=2
10 10 f[i]=4

那么 f[i]=0 的个数为 1f[i]=1/2/3/4 第个数依次为 1 2 0 1 , 所以答案就是为 1 1 2 0 1.

数据规模与约定

对于所有数据,保证 1n105 1 \leq n \leq 10^51ai,bik2×1051 \leq a_i, b_i\le k \leq 2 \times 10^5

Subtask1:n103Subtask1: n\le 10^3 , 2020

Subtask2:n5×104Subtask2: n\le 5\times 10^4, 3030

Subtask3:n105Subtask3: n\le 10^55050

数据随机,于是就会有多种做法: K-D tree 、CDQ 、 bitset 、数据结构等