【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理

题目链接
【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理
【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理
【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理


【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理
【题解】[牛客OI周赛4-提高组]B.最后的晚餐 组合数+容斥原理

#include<cstdio>
typedef long long ll;
const int mod=1e9+7;
int n;
ll ans=1,a,b,c;
int main()
{
    scanf("%d",&n);
    if(n==1){puts("0");return 0;}
    a=1;b=n-2;
    for(int i=2;i<=n;i++)
        c=(b*(ll)(n+i-3)+a*(ll)(i-1<<1))%mod,a=b,b=c;
    for(int i=2;i<n;i++)
        ans=ans*(ll)i%mod;
    ans=ans*c%mod;
    printf("%lld\n",ans);
    return 0;
}

总结

数学题