锰镁刚学OI蜜汁RE在线求调
查看原帖
锰镁刚学OI蜜汁RE在线求调
556545
_anll_楼主2024/1/18 19:13

rt,第一个点过了,其他点re了,照着同学代码看了很久都不知道哪里不同qwq

#include<iostream>
#define int long long
#define mod 1000000007
using namespace std;
int n,inv[1000005],jc[1000005],num[1000005],ans=1;
int C(int n,int m){
    if(m==0) return 1;
    if(n<m) return 0;
    return jc[n]*inv[jc[m]]%mod*inv[jc[n-m]]%mod;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>num[i];
        num[i]/=2;
    }
    inv[1]=inv[0]=jc[1]=jc[0]=1;
    for(int i=2;i<=1000000;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
    for(int i=2;i<=1000000;i++) jc[i]=(jc[i-1]*i)%mod;
    for(int i=2;i<=n;i++){
        if(num[i]<num[i-1]) ans*=C(num[i-1],num[i]);
        else ans*=C(num[i]-1,num[i-1]-1);
        ans%=mod;
    }
    cout<<ans;
    return 0;
}
2024/1/18 19:13
加载中...