OJ 松哥的困惑IV(大数组处理)

描述

松哥有次突发奇想,决定回高中再上高中数学课,数学老师提了这样一个问题:有一个分段函数T(0,n)=n(n>0),T(k,n)=T(k-1,1)+T(k-1,2)+…+T(k-1,n)(k>0,n>0).第一天数学老师问他,松松对于T(1,1)你怎么看?第二天数学老师问他,松松对于T(2,2)你怎么看?第三天数学老师问他,松松对于T(3,3)你怎么看?……松哥怒了,松哥决定一次把所有函数值全部算出来,但是由于他智商有限,所以他想请求你的帮助.

输入
多组测试数据.

每组测试数据包含一个正整数k,n.(0<k,n<1010)

输出
对于每组测试数据,输出T(k,n)mod 100007.

题目应该还是比较好理解的,套用题目给出的公式进行一步步求解。终止条件就是要将给出的T(k,n)都化成最简的T(0,n)类型。通过推导可以发现,其实所有T(k,n)都可以用数值对f[i][j]=(f[i-1][j]+f[i][j-1])表示。

代码实现:

#include <iostream>

using namespace std;
int f[1020][1020];  //作为全局变量,在静态存储区分配内存,如果是局部变量,在栈内分配内存,如果数组较大容易造成栈溢出。
int main()
{
    int i,j,k,n;
    for(j=0;j<=1010;j++)
    {
        f[0][j]=j;
        f[j][1]=1;
    }
    for(i=1;i<=1010;i++)
        for(j=2;j<=1010;j++)
    {
        f[i][j]=(f[i-1][j]+f[i][j-1])%100007; //经过推导出来的数学公式
    }
    while(cin>>k>>n)
    {
        cout<<f[k][n]<<endl;
    }
    return 0;
}

希望我的文章对你有所帮助,嘻嘻!
如果有错误的话还请批评指正。
在这里插入图片描述

阿里巴巴找黄金宝箱(ivOJ是阿里巴巴集团推出的一项在线知识竞赛平台。这个平台的目的是为了激发大众的学习兴趣和提高他们的知识水平。 阿里巴巴找黄金宝箱(ivOJ平台是通过在线竞赛的形式来测试参与者的编程和算法能力,从而帮助他们提高技术实力。参与者可以在这个平台上选择自己感兴趣的题目进行解答,并与其他参赛者进行排名比较。平台为参赛者提供了丰富的题库和不同难度级别的题目,涵盖了广泛的计算机科学和编程技术领域。 参加阿里巴巴找黄金宝箱(ivOJ竞赛的好处是可以锻炼自己的编程能力和解决问题的能力。通过参与竞赛,参赛者可以接触到各种类型和难度的编程题目,从而提高自己解决问题的思维方式和技巧。此外,平台还提供了排行榜和证书等奖励机制,鼓励参赛者不断努力和进步。 阿里巴巴找黄金宝箱(ivOJ不仅仅是为了竞赛而存在,它也是一个学习和交流的社区。在这个平台上,参赛者可以与其他人分享自己的解题思路和经验,学习到其他参赛者的优秀解答。这种交流和学习的过程能够促进参赛者的个人成长和技术进步。 总的来说,阿里巴巴找黄金宝箱(ivOJ是一个有益于技术人员成长的在线竞赛平台。它通过提供丰富的题目和竞赛机制,帮助参赛者提高编程和解决问题的能力,并且促进参赛者之间的学习和交流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值