Related
In following contests:
核心思路
把 n 个 Token 段按到达顺序切成若干连续会话,每个会话注入一个此前未用过的专家组。一组只用一次,因此会话之间的组互异;最短会话、容量、组数上限和切换开销都在切分时一并结算。
记 dp[i][mask] 为已经路由完前 i 个 Token 段、已开启专家集合为 mask 时的最大净收益(可暂为负)。枚举下一段会话 [i+1,r] 与未使用的组 j,在长度、负载都合法时转移到 dp[r][mask∪{j}]。首次会话不扣 s,之后每次新开会话扣一次。
最终答案取所有 dp[n][⋅] 的最大值;若该值小于 0 或不可达,输出 −1。
某推理集群需要依次把 n 个 Token 段路由到 m 个部署在 NPU 卡组上的专家组。每个 Token 段必须进入恰好一个专家组。
第 i 个 Token 段的负载为 wi,分给第 j 个专家组的亲和收益为 pi,j。第 j 个专家组的驻留容量为 cj,激活开销为 aj。
记第 i 个 Token 段进入的专家组为 gi,开启过会话的专家组集合为 S。净收益拆成三项:
U= 亲和收益 − 激活开销 − 切换开销。只保留 U≥0 的方案。
第一行五个整数 n,m,k,q,s。
第二行 n 个整数 w1,w2,…,wn。
第三行 m 个整数 c1,c2,…,cm。
第四行 m 个整数 a1,a2,…,am。
接下来 n 行,第 i 行 m 个整数 pi,1,pi,2,…,pi,m。
1≤n≤40
1≤m≤8
1≤k≤m
1≤q≤n
0≤s≤104
1≤wi≤100
1≤cj≤4000
0≤aj≤104
0≤pi,j≤1000
输出一个整数,表示最大净收益。没有可用方案时输出 −1。
输入
4 3 2 1 5
2 3 2 4
5 9 6
3 10 4
8 1 2
3 9 1
4 8 2
1 2 7
输出
9
说明
只开 1 组时四段负载和为 11,三组容量分别为 5,9,6,均不够。
[1] 给组 1、[2,4] 给组 2:负载 2≤5、9≤9,亲和 8+9+8+2=27,激活 3+10=13,切换 5,U=9。
[1,2] 给组 1、[3,4] 给组 3:负载 5≤5、6≤6,亲和 8+3+2+7=20,激活 3+4=7,切换 5,U=8。
[1,3] 给组 2、[4] 给组 3:负载 7≤9、4≤6,亲和 1+9+8+7=25,激活 10+4=14,切换 5,U=6。
其余两段划分的净收益都不超过 9。
输入
5 2 2 2 3
1 1 1 1 1
3 3
2 2
5 0
5 0
0 5
5 0
5 0
输出
8
说明
[1,2] 给组 1、[3,5] 给组 2:负载 2≤3、3≤3,亲和 5+5+5+0+0=15,激活 2+2=4,切换 3,U=8。
[1,3] 给组 2、[4,5] 给组 1:亲和 0+0+5+5+5=15,激活 4,切换 3,U=8。
第 3 段不能单独成会话(长度 1<2)。组 1 也不能在组 2 两侧各开一次会话。
In following contests:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册