分析

刚学生成函数,来试试水。我们先把每一种的生成函数写出来,并转化为封闭性式。


  • 全部相乘之后 。如何转化为幂级数的形式。因为 所以 所以最后的答案为

    代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10,inf = 0x3f3f3f3f,mod = 10007;

#define LL long long
LL read() {
    int x = 0,f = 0;char ch = getchar();
    while(!isdigit(ch)) {if(ch == '-')f = 1;ch = getchar();}
    while(isdigit(ch)) {x = x * 10 + ch - '0';x %= mod;ch = getchar();}
    return f ? -x : x;
}
LL qpow(LL a,LL b) {
    LL x = 1;for(;b;b>>=1,a=a*a%mod) {
        if(b&1) x = x * a % mod;
    }
    return x;
}
int main() {
    LL inv6 = qpow(6,mod-2);
    LL n = read();
    printf("%lld\n",(n*(n+1)%mod*(n+2)%mod*inv6%mod));
    return 0;
}