#AEAI02011. 固定轮次对象簇稳定化

固定轮次对象簇稳定化

题目描述

在连续调试中,具身智能部会让对象区域聚类运行固定轮次,而不是根据收敛情况提前停止。这样每次评测都能复现同样的中心轨迹,方便比较不同初始中心的稳定性。

给定样本点、初始中心和轮数 R,请执行 R 轮 K-means:每轮都先用当前中心完成全量分配,再统一更新中心。若某轮出现空簇,该簇中心保持上一轮的位置。

完成全部 R 轮后,还要使用最终中心对所有样本重新分配一次,并输出最终中心和最终簇编号。

输入格式

  • 第一行包含 n d K R。
  • 接下来 n 行输入样本特征。
  • 再接下来 K 行输入初始中心。

输出格式

  • 先输出 K 行最终中心。
  • 最后一行输出 n 个最终簇编号。

数据范围与约束

  • 1 <= K <= min(n,20)
  • 1 <= R <= 50
  • 1 <= d <= 8

判定规则

使用标准输出比较。浮点结果按题面保留 6 位或 10 位小数;阈值等号、无可行分支和 Tie-break 按下列规则处理。

  • 每轮先全量分配,再统一更新。
  • 空簇保持上一轮中心。
  • 完成 R 轮后必须用最终中心重新分配一次。

样例

输入样例 1

3 1 2 2
0
2
10
0
10

输出样例 1

1.000000
10.000000
1 1 2

输入样例 2

2 1 2 3
0
1
0
100

输出样例 2

0.500000
100.000000
1 1

样例解释

样例 1 固定执行两轮后中心稳定在 110,最终标签为 1 1 2。样例 2 中第二个簇始终为空,因此它的中心保持 100