美文网首页
ACM 之 A - 递推

ACM 之 A - 递推

作者: Gadore千里 | 来源:发表于2016-08-05 20:02 被阅读69次

Description

我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,
如果代码中出现
for(i=1;i<=n;i++) OP ;
那么做了n次OP运算,如果代码中出现
fori=1;i<=n; i++)
for(j=i+1;j<=n; j++) OP;
那么做了n*(n-1)/2 次OP 操作。
现在给你已知有m层for循环操作,且每次for中变量的起始值是上一个变量的起始值+1(第一个变量的起始值是1),终止值都是一个输入的n,问最后OP有总共多少计算量。

Input

有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 <cstdio>
#include <cstring>
using namespace std;
int a[2001][2001],t,m,n;
void fun()
{
    memset(a,0,sizeof(a));
    for(int i=1;i<=2001;i++)
    {
        a[i][i]=1;
        a[1][i]=i%1007;
    }
    for(int i=2;i<=2001;i++)
        for(int j=i;j<=2001;j++)
        {a[i][j]=(a[i][j-1]+a[i-1][j-1])%1007;}
}
int main()
{
    fun();
    scanf("%d",&t);
    getchar();
    while(t--)
    {
        scanf("%d%d",&m,&n);
        getchar();
        printf("%d\n",a[m][n]);
    }
}

意见反馈 || 任何建议

联系我(新浪)
邮箱:qianlizhihao@gmail.com

相关文章

  • ACM 之 A - 递推

    Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,如果代码中出...

  • ACM 之 C - 递推

    Description 用N个三角形最多可以把平面分成几个区域? Input 输入数据的第一行是一个正整数T(1<...

  • HDU2047

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2047 思路:递推...

  • 每日战报 2016 03 28

    DONE 做完了硅光电池的特性大物实验报告 听了高数课,又得自己看书自己学了 TODO 进行递推算法ACM练习 把...

  • ACM之开始

    经过激烈的竞争,终于获得免试研究生资格,我最终选择了直博。 在本次资格竞争中,我的加权排名很低,上机考试成绩也不怎...

  • ACM 之 A - The Snail

    Description A snail is at the bottom of a 6-foot well and...

  • 从这里开始

    ACM国际大学生程序设计竞赛 什么是ACM-ICPC? ACM-ICPC全称“ACM International ...

  • 主定理的推导 Master theorem

    关于递推问题算法复杂度的的推导。递推公式: 分三种情况: 由递推公式可得:

  • 递推

    3.1费解的开关 原题链接[https://www.acwing.com/problem/content/desc...

  • 基本算法思想之递推

    分治算法的基本思想是将一个计算复杂的问题分为规模较小,计算简单的小问题求解,然后综合各个小问题,而得到最终问题的答...

网友评论

      本文标题:ACM 之 A - 递推

      本文链接:https://www.haomeiwen.com/subject/yoxksttx.html