解题思路
首先根据曼哈顿距离判断两个基站是否互为空间邻域。对于基站 Pi(xi,yi) 和 Pj(xj,yj),距离为
dspace=∣xi−xj∣+∣yi−yj∣
当 dspace≤ϵdist 时,Pj 属于 Pi 的空间邻域。遍历邻域时需要包含基站自身,因此每个基站的邻域数量至少为 1。
题目内容
核心定义
- 空间邻域:对于基站 Pi(xi,yi) 和 Pj(xj,yj):若其曼哈顿距离 dspace∈[0,ϵdist],则称 Pj 是 Pi 的空间邻域。
- 公式:dspace=∣xi−xj∣+∣yi−yj∣。特别注意:邻域判定包含基站自身(即 (d=0) 的情况)。
- 核心点(Core):若基站 P 的空间邻域内包含的基站总数 Count∈[MinPts,∞),则判定为核心点。
- 边界点(Border):若基站 P 本身不是核心点,但其空间邻域内包含至少一个核心点,则判定为边界点。
- 噪声点(Noise):既不是核心点,也不是边界点的基站,判定为噪声点。
算法逻辑
- 邻域统计:遍历所有基站,计算每个基站在距离 ϵdist 范围内的邻居数量(含自身)。
- 核心点识别:根据 MinPts 判定并记录所有核心点的索引。
- 属性标注:满足核心条件的标记为 0。不满足核心条件但邻域内有核心点的标记为 1。其余标记为 2。
输入描述
- 第 1 行:N,N 个基站,意味着下面有N行;ϵdist,基站间的距离门限;MinPts(空格分隔),邻域数量门限。
- 第 2 行到 (N+1) 行:x,y(代表基站的平面坐标)。
- 数据范围:N∈[1,2000] ϵdist∈[0,10000] MinPts∈[1,N] (x,y)∈[−10000,10000]
输出描述
输出共 N 行,每行一个整数,代表第 i 个基站的属性:0: Core, 1: Border, 2: Noise。
样例1
输入
5 1 2
0 0
1 0
-1 0
0 1
0 -1
输出
0
0
0
0
0
说明
星形分布。中心点 ((0,0)) 与四个方向的点均连通。每个点邻域数均大于等于 2。