博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环次数
阅读量:5245 次
发布时间:2019-06-14

本文共 764 字,大约阅读时间需要 2 分钟。

题目链接:

题意:

     如果代码中出现 

     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有总共多少计算量。 

    求出的这个数字很大,那么你只需要输出除1007留下的余数即可。

    案例:

    input

    2

    1 3

    2 3

    output

    3

    3

思路分析:

        这里需要利用一个公式Cn(m)=Cn-1(m)+Cn-1(m-1)。

        为减少时间可利用打表的方法。

源代码如下:

1 #include
2 using namespace std; 3 int a[2050][2050]; 4 int main() 5 { 6 int t,n,m,i,j; 7 cin>>t; 8 a[0][0]=1; 9 for(i=1;i<=2000;i++) //打表10 {11 a[i][0]=1;12 for(j=1;j<=2000;j++)13 a[i][j]=(a[i-1][j]+a[i-1][j-1])%1007;14 }15 while(t--)16 {17 cin>>m>>n;18 cout<
<

 

  

 

转载于:https://www.cnblogs.com/q-c-y/p/4684409.html

你可能感兴趣的文章
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
name phone email正则表达式
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
oracle中anyData数据类型的使用实例
查看>>
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>