你需要在一个序列建模系统中,给长度为 n 的输入序列做“有限入度”的注意力连边选择,使得信息总量最大。具体约定如下: 每个位置 j 携带一个 d 维实数特征向量 Xj(所有向量均非零),以及一个整数容量 cj,表示该位置最多可以接收来自它之前位置的连边条数。 先对每个向量做 RMSNorm 归一化:对向量的每个分量除以“各分量平方的平均值再开根号”。等价地,若向量为 x,则 rms = sqrt((x[0]^2 + ... + x[d-1]^2)d),归一化向量为 xrms。此处归一化不使用偏置与缩放(gamma=1,epsilon=0)。 对任意一对位置 i 对于每个 j,从所有 i 输出 round(100 * S) 的整数值。
输入描述:
第一行:n d(空格分隔)接下来 n 行:每行 d 个浮点数,表示第 j 个向量的 d 个分量最后一行:n 个非负整数,表示 c0, c1, ..., c(n-1)
输出描述:
一个整数,即 round(100 * S)
示例1
输入
4 2
2 2
3 0
0 4
1 1
0 1 1 2
说明
归一化后:x̂0=[1,1],x̂1=[√2,0],x̂2=[0,√2],x̂3=[1,1]
贡献平方:a(0,1)^2=1,a(0,2)^2=1,a(0,3)^2=2,a(1,2)^2=0,a(1,3)^2=1,a(2,3)^2=1
每个 j 最多选 cj 条:j=1 取1;j=2 取1;j=3 取2,共 S=5,输出 round(100*5)=500
备注:
round 为四舍五入到最接近的整数。对每个 j 的选择彼此独立;即对每个 j 只需从该列候选里取贡献值最大的 cj 条即可(贪心即最优)。
加载中...