题目描述
给定 n 种物品,每种物品 i 价值为 vi,个数为 ci。
定义总价值为 i=1∑ncivi,你可以进行一些(可能为 0)次操作来最大化总价值。
一次操作为:选定一个 i 满足 ci≥xi,让 ci←ci−xi,ci+1←ci+1+1。
输出最大的总价值对 998,244,353 取模。
注意,你需要最大化总价值,再对 998,244,353 取模,而不是最大化「总价值对 998,244,353 取模的值」。
输入格式
本题有多组数据。
第一行一个正整数 id,表示该测试数据所属子任务编号。
第二行一个正整数 T,表示数据组数。对于每组数据:
- 输入共四行。
- 第一行,一个正整数 n,表示钱的种数。
- 第二行,n 个非负整数分别表示 v1,v2…vn。
- 第三行,n 个非负整数分别表示 c1,c2…cn。
- 第四行,n−1 个正整数分别表示 x1,x2…xn−1。
输出格式
输出 T 行,每行一个整数,表示物品总价值的最大值。所有答案对 998244353 取模。
样例输入 #1
0
2
2
1 5
5 1
4
10
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
样例输出 #1
11
172998509
样例解释 #1
对于样例的第一组数据,v=[1,5],c=[5,1],x=[4]。可以选定 i=1 进行一次操作,此时 c=[1,2],总价值为 1⋅1+5⋅2=11,可以证明它是最大的。
数据范围/提示
本题子任务不进行捆绑,共 7 个子任务 50 个测试点,每个测试点等分。
| id= |
∑n≤ |
ci,vi≤ |
特殊性质 |
分值 |
| 1 |
/ |
特殊性质 A |
6 |
| 2 |
特殊性质 B |
10 |
| 3 |
特殊性质 C |
| 4 |
300 |
/ |
14 |
| 5 |
2000 |
2000 |
20 |
| 6 |
/ |
| 7 |
/ |
- 特殊性质 A:xi=109。
- 特殊性质 B:xi=1。
- 特殊性质 C:所有 ci,vi 均在 [0,105] 间均匀随机生成;所有 xi 均在 [1,105] 间均匀随机生成。
对于所有数据,1≤t≤105,2≤n,∑n≤2×105,1≤xi≤109,0≤ci,vi≤109。