zoukankan      html  css  js  c++  java
  • 杭电1799--循环多少次

    循环多少次?

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 3331    Accepted Submission(s): 1239


    Problem 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
     
    Author
    wangye
     
    //此题有毒;参考别人代码写出; 什么组合数+打表,不好搞;
     1 #include<stdio.h>
     2 int biao[2010][2010];
     3 int main()
     4 {
     5     int t,i,j;
     6     scanf("%d",&t);
     7     for(i=0;i<2010;i++)
     8     {
     9         biao[i][i]=1;
    10         biao[i][1]=i%1007;
    11     }
    12     for(i=2;i<2010;i++)
    13     for(j=1;j<i;j++)
    14     biao[i][j]=(biao[i-1][j-1]+biao[i-1][j])%1007;
    15     while(t--)
    16     {
    17         int m,n;
    18         scanf("%d %d",&m,&n);
    19         printf("%d
    ",biao[n+1][m+1]);
    20     }
    21     return 0;
    22 }

      

     
  • 相关阅读:
    对cross-env的理解
    【好好学习】mh_h5
    QS工具入门
    vue中用qs传参发送axios请求
    Web API 异常处理
    WEB API Filter的使用以及执行顺序
    RSA/SHA1加密和数字签名算法在开放平台中的应用
    windows上RSA密钥生成和使用
    Cordova Error: cmd: Command failed with exit code ENOENT
    Cordova热更新cordova-hot-code-push
  • 原文地址:https://www.cnblogs.com/soTired/p/4575603.html
Copyright © 2011-2022 走看看