题意
长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种。
$1<=n<=1e3,-1e9<=s<=1e9,1<=a, b<=1e6$
题解
设数列首项为$a_1$,增量为$d_1,d_2,\cdots,d_{n-1}$,则$\large na_1+\sum\limits_{i=1}^{n-1}(n-i-1)d_i=s$
因为$a_1$可以取任意值,所以$\large \sum\limits_{i=1}^{n-1}(n-i-1)d_i\equiv s (mod n)$
$dp[i][j]$表示长度为$i$,$\large \sum\limits_{k=1}^{i-1}(n-k-1)d_k mod n=j$ 的方案数。
代码
1 |
|