Wannafly Winter Camp 2020 Day 7E 上升下降子序列 - 数学

神奇公式

#include <bits/stdc++.h>
using namespace std;

#define int long long
int n,mod,c[205][205];

signed main() {
    cin>>n>>mod;
    for(int i=0;i<=2*n;i++) {
        c[i][0]=1;
        for(int j=1;j<=i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
    }
    int ans=c[2*n][n],b=1;
    for(int i=n-1;i>=0;--i) {
        ans-=c[2*i][i]*b%mod;
        ans%=mod;
        ans+=mod;
        ans%=mod;
        b*=2;
        b%=mod;
    }
    cout<<ans;
}

猜你喜欢

转载自www.cnblogs.com/mollnn/p/12376838.html