#AEAI02007. 多邻居抓取方式投票

多邻居抓取方式投票

题目描述

单个历史模板有时会受到噪声影响,具身智能部因此改用多个近邻共同投票来决定抓取方式。每个历史样本记录一种抓取类别,新场景的类别由最近的 k 个样本裁决。

请先按加权平方距离和样本编号选出最近的 k 个历史样本,再统计这些近邻中各类别的票数及距离总和。最终类别按票数更高、距离和更小、类别编号更小的顺序确定。

注意:类别裁决只基于已入选的 k 个近邻;没有入选的样本不能贡献票数或距离和。

输入格式

  • 第一行包含 n d C k。
  • 第二行包含 d 个距离权重。
  • 随后 n 行每行包含 d 个历史特征和类别标签。
  • 最后一行包含 d 个查询特征。

输出格式

  • 第一行输出最终抓取方式类别编号。
  • 第二行输出该类别票数。
  • 第三行输出该类别入选邻居距离总和。

数据范围与约束

  • 1 <= k <= n <= 20000
  • 1 <= C
  • 标签在 1..C

判定规则

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

  • 先按距离、样本编号选最近 k 个样本。
  • 类别按票数高、距离和小、类别编号小裁决。
  • 距离和保留 6 位。

样例

输入样例 1

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

输出样例 1

1
2
1.000000

输入样例 2

4 1 2 2
1
0 1
2 2
1 1
3 2
1

输出样例 2

1
2
1.000000

样例解释

样例 1 中最近三个样本里类别 1 获得两票,因此输出类别 1。样例 2 展示了先按距离和编号选近邻,再对入选样本投票的流程。