给出 m 个终端的四维数值特征,需将它们用 KMeans 聚成 k 类,并输出各簇的样本数,从小到大排序后以空格分隔打印。实现规则如下: 初始质心:直接取数据中的前 k 个样本。 距离:使用四维欧氏距离的平方(少一次开方,比较大小结果不变)。 更新:每轮按最近质心分配样本,再用簇内四维特征的平均值更新该簇质心。 收敛判定:若所有质心的新旧位置变化量(平方距离)最大值小于 1e-8,或已达到最多迭代次数 n,则停止。 空簇处理:若某簇本轮没有样本,保持该簇质心不变,避免除零错误。
第一行:k m n 接下来 m 行:每行 4 个浮点数,表示一个终端的四维特征
一行:k 个整数(各簇样本数),升序排列,用空格分隔
2 4 100 0.00 0.00 0.00 0.00 10.00 10.00 10.00 10.00 0.20 0.00 0.00 0.00 9.80 10.00 10.00 10.00
2 2
考点:排序
限制 1 秒 / 256MB | 标准输入输出
参考方向:排序
先用 O(n log n) 排序把无序变有序,后续处理往往就简单了。
思路框架(排序 通法 · 非本题专属)
实现要点:在 C++ 中用 std::sort,Python 用 sorted();注意自定义比较函数的严格弱序。
复杂度:时间 O(n log n) | 空间 O(log n) ~ O(n)
该范式的通法易错点
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1:输入 2 4 100 / 0.00 0.00 0.00 0.00 / 10.00 10.00 10.00 10.00 / 0.20 0.00 0.00 0.00 / 9.80 10.00 10.00 10. → 输出 2 2
前两行即初始两个质心,后两点分别更接近对应质心;每簇各 2 个样本,升序输出为 2 2。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-11月19号AI岗。