bzoj3028 食物

题解

生成函数写出来:

1 1 − x 2 ( 1 + x ) ( 1 + x + x 2 ) ( x 1 1 − x 2 ) ( 1 1 − x 4 ) ( 1 + x + x 2 + x 3 ) ( 1 + x ) ( 1 1 − x 3 ) \frac{1}{1-x^2}(1+x)(1+x+x^2)(x\frac{1}{1-x^2})(\frac{1}{1-x^4})(1+x+x^2+x^3)(1+x)(\frac{1}{1-x^3}) 1x21(1+x)(1+x+x2)(x1x21)(1x41)(1+x+x2+x3)(1+x)(1x31)

然后根据 ( 1 − x ) ( 1 + x + x 2 ) = ( 1 − x 3 ) (1-x)(1+x+x^2)=(1-x^3) (1x)(1+x+x2)=(1x3) ( 1 − x ) ( 1 + x + x 2 + x 3 ) = ( 1 − x 4 ) (1-x)(1+x+x^2+x^3)=(1-x^4) (1x)(1+x+x2+x3)=(1x4),带进去化简,就得到:

x 1 − x 4 \frac{x}{1-x^4} 1x4x

然后展开

x ∑ k = 0 ∞ ( − 1 ) k ( − 4 k ) x k + 1 x\sum_{k=0}^{\infin} (-1)^k \binom{-4}{k} x^{k+1} xk=0(1)k(k4)xk+1

最后得到答案为

n ( n + 1 ) ( n + 2 ) 6 \frac{n(n+1)(n+2)}{6} 6n(n+1)(n+2)

代码

n = int(input())
print((n*(n+1)*(n+2)//6)%10007)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值