• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风吹过的温度
博客园    首页    新随笔    联系   管理    订阅  订阅

递推

有T组case,T<=10000。每个case有两个整数m和n,0<m<=2000,0<n<=2000.

Output

  对于每个case,输出一个值,表示总的计算量,也许这个数字很大,那么你只需要输出除1007留下的余数即可。

Sample Input

2
1 3
2 3

Sample Output

3
3
#include<iostream>  
using namespace std;
#include<cstdio>  
int c[2010][2010];  
int main()  
{  
    int i,j;  
    for(i=1;i<=2000;i++)  
    {  
        c[i][0]=1;  
        c[i][1]=i%1007;  
    }  
    for(i=2;i<=2000;i++)  
    {  
        for(j=2;j<=i;j++)  
        {  
           c[i][j]=(c[i-1][j]%1007+c[i-1][j-1]%1007)%1007;  
        }  
    }  
    int t,m,n;  
    scanf("%d",&t);    
    while(t--)  
    {   
      scanf("%d%d",&m,&n);
      if(m>n)
      {
          printf("0\n");continue;
      }  
      else 
          printf("%d\n",c[n][m]);  
    }    
    return 0;  
}  

 

 



 


posted @ 2016-08-07 19:33  风吹过的温度  阅读(138)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3