正经题解
2026-04-16 16:53:58
发布于:浙江
2阅读
0回复
0点赞
#include <iostream>
#include <algorithm>
using namespace std;
const int MOD=1000000007;
const int MAX=1005;
// 定义dp数组,dp[i][j]表示C(i,j)
long long dp[MAX][MAX];
//预处理杨辉三角
void init(){
for(int i=0;i<MAX;++i){
dp[i][0]=1;//C(i,0)=1
dp[i][i]=1;//C(i,i)=1
for (int j=1;j<i;++j){
//核心递推公式:C(i,j) = C(i-1,j-1) + C(i-1,j)
dp[i][j]=(dp[i-1][j-1]+dp[i-1][j])%MOD;
}
}
}
int main(){
init();//预处理所有组合数
int n,m;
cin>>n>>m;
cout<<dp[n][m]<<endl;
return 0;
}
这里空空如也




有帮助,赞一个