山东省赛二组合数dp

来源:互联网 发布:mac迅雷下载速度为0 编辑:程序博客网 时间:2024/06/10 05:27

Binomial Coeffcients

Time Limit: 1000MS Memory limit: 65536K

题目描述

 

输入

 

输出

 

示例输入

31 110 2954 723

示例输出

1453557658
C语言中int类型上线跟机器位数有关

16位机器准确说是16位编译器是:-32768~32767

32位编译器:-2147483648~2147483647

现在机房普遍是32位编译器,所以2后面加9个0即一些十位数可以用int类型定义

此题关键是:C[n][m]=C[n-1][m]+c[n-1][m-1]///类似于从n个球中取出m个球的组合数

打表来做

#include <iostream>#include<cstdio>#include<string.h>using namespace std;#define mod 10000003int dp[1010][1010];int sum;void fun(){    dp[0][0]=1;    for(int i=1; i<=1000; i++)    {        dp[i][i]=dp[i][0]=1;        for(int j=1; j<=i; j++)            dp[i][j]=(dp[i-1][j]+dp[i-1][j-1])%mod;    }}int main(){    fun();    int t,n,m;    cin>>t;    while(t--)    {        cin>>n>>m;        cout<<dp[n][m]<<endl;    }    return 0;}


0 0
原创粉丝点击