您的位置:首页 > 其它

SDUT 汤圆の糖(递推算法)

2016-02-24 20:31 260 查看


汤圆の糖



Time Limit: 1000MS Memory limit: 65536K


题目描述

又到了汤圆星球一年一度的汤圆节了,在汤圆的世界里,分为好多种汤圆,比如说巧克力味儿的,橙子味儿的,哈密瓜味儿的,臭脚丫味儿的。

小花儿特别喜欢吃汤圆,今天她要自己动手煮汤圆。汤圆刚开始是放在一个n*m的盒子中的,小花儿拿汤圆第一次肯定会从最左上角(1,1)拿一个汤圆下锅,之后她只能向下拿(2,1)或者向右拿(1,2),直到拿到(n,m)结束。问小花儿有多少种不同的取法?


输入

多组测试数据,处理到文件结束。

每行2个数字n,m,中间用空格隔开。(1 <=n,m <= 1000)


输出

由于方法的数量可能很大,只需要输出答案对1000000007取余的结果。


示例输入

2 3



示例输出

3


c代码

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

long a[1010][1010];

int main()

{

   int n,m,i,j;

   while(~scanf("%d %d",&n,&m))

   {

        for(i=1;i<=n;i++)     //最上面一行只能从左边来,所以将最上面一行设置为1

            a[1][i]=1;

        for(i=1;i<=m;i++) //最左面一行只能从上面来,将最左面一列设置为1

            a[i][1]=1;

        for(i=2;i<=m;i++)

            for(j=2;j<=n;j++)

                a[i][j]=(a[i-1][j]+a[i][j-1])%1000000007;//其余每个的个数等于来自上面一个的加上来自左面一个的个数

        printf("%ld\n",a[m]
);

   }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: