题目背景
这个题目没有背景,因为我是圣人的同时还是神之右席。
题目描述
定义一次石子合并的过程如下:有一排 n 堆石子,每一堆有 ai(ai≥1) 个。每次你可以选择相邻的两堆石子合并,设个数分别为 x,y,则你会得到一堆 (x+y) 个石子,同时你要付出 xy 的代价。最后要把所有石子合并成一堆。记 f(a1,…,an) 为合并这些石子的最小代价。
给出石子总数 S,求
∑ai=S∑f(a1,…,an)
答案对 998244353 取模。
输入格式
本题有多组测试数据。
第一行一个整数 T,表示测试数据的数量。
接下来 T 行,每行两个整数,分别为 n,S。
输出格式
T 行,每行一个整数,表示答案对 998244353 取模的结果。
提示
【样例解释】
对第一个样例的第一组数据解释:
划分有 (1,5),(2,4),(3,3),(4,2),(5,1),共 5 种。
答案为 1×5+2×4+3×3+4×2+5×1=35。
【数据范围】
测试点编号 |
n |
S |
1,2 |
≤15 |
3,4 |
≤40 |
5,6,7 |
≤70 |
8,9 |
≤200 |
10,11 |
≤2000 |
12,13,14 |
≤106 |
15 |
=2 |
≤109 |
16,17,18 |
≤2000 |
19~25 |
≤106 |
对于 100% 的数据,有 1≤T≤5,1≤n≤106,1≤S≤109。
