首页 > 试题广场 >

DBSCAN聚类

[编程题]DBSCAN聚类
  • 热度指数:189 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
  • 任务: 用DBSCAN在二维或三维实数坐标上做聚类,输出“簇的数量”和“噪声点数量”。
  • 定义: 距离为欧氏距离;某点的邻域半径为eps;若该点邻域内样本数(含自身)≥ min_samples,则为核心点;从未访问核心点出发,按邻域可达关系扩展一个簇;不被任何簇吸收的点视为噪声

输入描述:
  • 第一行: eps min_samples x
  • 接下来x行: 每行2个或3个实数(同一测试仅一种维度)


输出描述:
  • 一行: 簇数 噪声点数
示例1

输入

1.5 2 6
0 0
0.5 0
0 0.5
10 10
10.5 10
10 10.5

输出

2 0

说明

前3个点彼此间距都≤1.5,形成一簇;后3个点同理形成另一簇;无噪声。

备注:
  • 约定: 邻域判定使用距离≤eps;核心点计数包含自身。

这道题你会答吗?花几分钟告诉大家答案吧!