B. 第2题-加权近邻判定

第2题-加权近邻判定

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

本题要求实现 kk 近邻(KNN)判定:已有 nn 个带标记的训练实例,还要判定 mm 个实例的标记,每个待判定实例都用与它最接近的 kk 个训练实例来投票。

每个实例记录所属类型 tt(00 或 11)与五项指标:累计请求数 ww、累计响应数 rr、平均排队时延 twtw、平均处理时延 trtr、采样轮数 yy。

一、对照范围与距离

  • 对照只从训练实例中类型 tt 与待判定实例相同的实例里选。
  • 输入给出五个权重 a,b,c,e,fa,b,c,e,f,两个实例的距离为
d(u,v)=a∣wu−wv∣+b∣ru−rv∣+c∣twu−twv∣+e∣tru−trv∣+f∣yu−yv∣d(u,v)=a|w_u-w_v|+b|r_u-r_v|+c|tw_u-tw_v|+e|tr_u-tr_v|+f|y_u-y_v|

dd 越小越近。

二、取近邻与判定

  • 把对照实例按 dd 升序、编号 idid 升序排列,取前 kk 个作为近邻;对照不足 kk 个时全部取用。
  • 近邻中标记 00 与标记 11 谁多就判谁;两数相等时,取 dd 最小的那个近邻的标记。
  • 对照为空时,判定为 00,该行只输出 00。

输入描述

第一行三个整数 n,m,kn,m,k,依次为训练实例数、待判定实例数、近邻个数上限。

第二行五个整数 a,b,c,e,fa,b,c,e,f,为五项指标的权重。

接下来 nn 行,每行八个整数,描述一个训练实例:编号 idid、类型 tt、累计请求数 ww、累计响应数 rr、平均排队时延 twtw、平均处理时延 trtr、采样轮数 yy、标记 ss(00 正常、11 异常)。

再接下来 mm 行,每行七个整数,描述一个待判定实例:编号 idid、类型 tt、累计请求数 ww、累计响应数 rr、平均排队时延 twtw、平均处理时延 trtr、采样轮数 yy。

约束

1≤n≤10001\le n\le 1000

1≤m≤2001\le m\le 200

1≤k≤n1\le k\le n

1≤a,b,c,e,f≤1001\le a,b,c,e,f\le 100

1≤id≤1091\le id\le 10^{9}

t∈{0,1}t\in\{0,1\}

0≤w,r≤1090\le w,r\le 10^{9}

0≤tw,tr≤1040\le tw,tr\le 10^{4}

0≤y≤300\le y\le 30

s∈{0,1}s\in\{0,1\}

输出描述

输出 mm 行,第 ii 行对应第 ii 个待判定实例:先输出判定结果,再按取用顺序输出各近邻的编号,相邻两项之间用一个空格分隔;没有对照时该行只输出 00。

样例1

输入

5 1 3
1 1 2 2 1
1 0 10 10 5 5 2 0
2 0 12 10 5 6 2 1
3 0 10 20 5 5 8 0
4 1 10 10 5 5 2 1
5 0 30 10 20 5 2 1
6 0 10 10 5 5 2

输出

0 1 2 3

说明

待判定实例编号为 66,类型 t=0t=0。训练实例中类型为 00 的是 1,2,3,51,2,3,5;编号 44 类型为 11,不参与。

各实例与该实例的距离:

  • 编号 11:d=1×0+1×0+2×0+2×0+1×0=0d=1\times 0+1\times 0+2\times 0+2\times 0+1\times 0=0,标记 00;
  • 编号 22:d=1×2+1×0+2×0+2×1+1×0=4d=1\times 2+1\times 0+2\times 0+2\times 1+1\times 0=4,标记 11;
  • 编号 33:d=1×0+1×10+2×0+2×0+1×6=16d=1\times 0+1\times 10+2\times 0+2\times 0+1\times 6=16,标记 00;
  • 编号 55:d=1×20+1×0+2×15+2×0+1×0=50d=1\times 20+1\times 0+2\times 15+2\times 0+1\times 0=50,标记 11。

按 dd 升序取前 k=3k=3 个,近邻为 1,2,31,2,3。其中标记 00 有 22 个、标记 11 有 11 个,判定为 00,输出 0 1 2 3。

样例2

输入

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

输出

0 1 2
1 4

说明

待判定实例编号为 55,类型 t=0t=0,类型相同的训练实例只有 1,2,31,2,3,距离依次为 0,1,20,1,2。取前 k=2k=2 个,近邻为 1,21,2,标记分别为 00 和 11,两数相等,取 dd 最小的近邻(编号 11)的标记,判定为 00,输出 0 1 2。

待判定实例编号为 66,类型 t=1t=1,类型相同的训练实例只有编号 44,对照不足 k=2k=2 个,全部取用;该实例标记为 11,判定为 11,输出 1 4。

AI方向-华为机考模拟赛-2026秋招第三场

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2026-9-15 19:00
End at
2026-9-15 21:00
Duration
2 hour(s)
Host
Partic.
196