HDU ACM 1799 循环多少次?

来源:互联网 发布:淘宝店铺怎么找回 编辑:程序博客网 时间:2024/05/21 08:47

利用组合公式C(n,m)=C(n-1,m)+C(n-1,m-1)。也就是从n个数里面选择m个数、按递增方式放在每一层循环。


#include<iostream>using namespace std;int a[2001][2001];int main() {int T,m,n,i,j;a[1][1]=1;            //组合公式Cn(m)=C(n-1,m)+C(n-1,m-1)for(i=2;i<=2000;i++){a[1][i]=i%1007;a[i][i]=1;}for(i=2;i<=2000;i++)               //打表for(j=i+1;j<=2000;j++)a[i][j]=(a[i-1][j-1]+a[i][j-1])%1007;cin>>T;while(T--){cin>>m>>n;cout<<a[m][n]<<endl;}return 0;} 


0 0
原创粉丝点击