S 老师的求和
S 老师是求和大师,熟练运用求和符号 ($\Sigma$) 。
他给定整数 $a, b, x$,并定义
$\begin{aligned} L_1(k) & = ak+b \\ L_2(k) & = \sum_{i = 1}^k L_1(i) \\ L_3(k) & = \sum_{i = 1}^k L_2(i) \\ L_4(k) & = \sum_{i = 1}^k L_3(i) \\ \end{aligned}$
S 老师让你求出 $L_1(x),L_2(x),L_3(x)$ 和 $L_4(x)$。由于答案可能很大,你只需要输出对 $998244353$ 取模的结果.
think
$$
\begin{align}
L_1(k)&=ak+b 易知\\
L_2(k)&=\sum\limits_{i=1}^{k}L_1(i)\\
L_2(k)&=\sum\limits_{i=1}^{k}ai+b\\
L_2(k)&=bk+a\sum\limits_{i=1}^{k}i\\
L_2(k)&=bk+a\frac{k(k+1)}2\\
L_3(k) & = \sum_{i = 1}^k L_2(i) \\
L_3(k) & = \sum_{i = 1}^k (bi+a\frac{i(i+1)}2) \\
L_3(k) & = \sum_{i = 1}^k bi+\sum_{i = 1}^k a\frac{i(i+1)}2 \\
L_3(k) & = \frac{bk(k+1)} 2+\sum_{i = 1}^k a\frac{i(i+1)}2 \\
L_3(k) & = \frac{bk(k+1)} 2+\frac{ak(k+1)(k+2)}{6} \\
L_4(k) & = \frac{bk((k+1)k+2)} 6+\frac{ak(k+1)(k+2)(k+3)}{24} \\
\end{align}
$$
code
void solve() {
cin >> a >> b >> x;
cout << b + a * x << " ";
cout << b * x + a * (x * (x + 1)) / 2 << " ";
cout << b * (x + 1) * x / 2 + a * (x) * (x + 1) * (x + 2) / 6 << " ";
cout << b * (x + 2) * (x + 1) * x / 6 +
a * (x) * (x + 1) * (x + 2) * (x + 3) / 24
<< "\n";
}
%%%