标签:预处理 mod lang return lse class 组合数 ret 有趣
链接:http://118.190.20.162/view.page?gpid=T2
注意:组合数利用杨辉三角形递推O(n)求解后是s[n][m],n是大的值,n为1e5用逆元预处理求解,时间复杂度O(nlogn)
代码:
#include<bits/stdc++.h>
using namespace std;
const int mod=(int)1e9+7;
int s[1005][1005];
int main (){
int n;
cin>>n;
for(int i=0;i<=n;i++)
for(int j=0;j<=i;j++)//
if(!j)s[i][j]=1;
else s[i][j]=(s[i-1][j]+s[i-1][j-1])%mod;
int ans =0;
for(int i=2;i<=n-2;i++)
ans=(ans+1LL*s[n-1][i]*(i-1)*(n-i-1)%mod)%mod;
cout<<ans;
return 0;
}
标签:预处理 mod lang return lse class 组合数 ret 有趣
原文地址:https://www.cnblogs.com/abestxun/p/14619703.html