本文共 332 字,大约阅读时间需要 1 分钟。
考虑和为 \(i\) 分成两个小于等于 \(n\) 的正整数的方案数 \(one_i\)。如果 \(2\leq i\leq n\),显然是 \(i-1\);如果 \(n<i\leq 2n\),那么第一个数至少取 \(i-n\),至多取 \(n\),所以是 \(n-(i-n)+1=2n-i+1\)。
再考虑和为 \(i\) 分成三个小于等于 \(n\) 的正整数的方案数 \(two_i\)。第一个数至少取 \(1\),至多取 \(n\),所以是 \(\sum_{j=i-n}^{i-1}one_i\)。前缀和优化。
枚举三个数的和,一直减到确定三个数的和为止。再枚举第一个数,一直减到确定后两个数的和为止。然后根据剩下的 \(k\) 输出答案。
转载地址:http://yzkkz.baihongyu.com/