循环多少次?

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 3051    Accepted Submission(s): 1117
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
 
Source
解释一下:2 3结果为3的情况。i为1的时候内循环仅仅有两种可能。运行两次操作,i为2的时候,运行一次,i为3的时候,不运行
总共三次,就是n次(n-i)而且i从1变化到n,由于中见有反复的部分。所以有总次数是n*(n-1)/2
主要是是否看懂题
考察的知识点:
排列组合公式C(N)m=C(N-1)(m-1)+C(N-1)(m-1)
代码例如以下:
#include<stdio.h>
int c[2020][2020];//下面凝视以从n个球里面取m个球为例
void f()
{
int i,j;
for(i=1;i<2020;i++)//初始化,将全部的取 1个球的可能性复制为i%1007(这是题目中的要求)
{
c[i][1]=i%1007;
c[i][0]=1;//不取。可能为一
}
for(i=2;i<2020;i++)//排列组合公式
{
for(j=1;j<2020;j++)
{
c[i][j]=(c[i-1][j]+c[i-1][j-1])%1007;
}
}
}
int main()
{
int t,n,m;
f();
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&m,&n);
printf("%d\n",c[n][m]);
}
return 0;
}

hdu 1799 (循环多少次?)(排列组合公式)的更多相关文章

  1. hdu 1799 循环多少次?(组合)

    题目是这样的:   我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算,如果代码中 ...

  2. 暴力求解——hdu 1799 循环多少次?

    Description   我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算,如 ...

  3. HDOJ(HDU) 1799 循环多少次?(另类杨辉三角)

    Problem Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次 ...

  4. HDU 5816 状压DP&排列组合

    ---恢复内容开始--- Hearthstone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java ...

  5. HDU 1261 字串数(排列组合)

    字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  6. hdu 1799 循环多少次?

    题目 题意:给出n,m,其中m表示有几层循环,求循环的次数 ①如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算: ②如果代码中出现 fori=1;i<=n ...

  7. HDU——1799循环多少次(杨辉三角/动态规划/C(m,n)组合数)

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  8. (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)

    /* * POJ_2249.cpp * * Created on: 2013年10月8日 * Author: Administrator */ #include <iostream> #i ...

  9. HDU 2492 BIT/逆序数/排列组合

    Ping pong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

随机推荐

  1. 循环插入记录,id每次加1

    sql语句写法: begin for i in 1 .. 100 loop insert into table_name values(....); end loop; commit; end; 例子 ...

  2. 【译】x86程序员手册24-第7章 多任务

    Chapter 7 Multitasking 多任务 To provide efficient, protected multitasking, the 80386 employs several s ...

  3. HDU_1864_最大报销额_01背包

    最大报销额 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  4. Spring框架系列(七)--Spring常用注解

    Spring部分: 1.声明bean的注解: @Component:组件,没有明确的角色 @Service:在业务逻辑层使用(service层) @Repository:在数据访问层使用(dao层) ...

  5. 【 jquery 】常用

    $("#input1").show('slide');    渐进显示$("#input1").hide('slide');     渐进隐藏 siblings ...

  6. 软件工程师需要了解的网络知识:从铜线到HTTP(一)—— 前言

    转自:https://lvwenhan.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/485.html?hmsr=toutiao.io&utm_medium ...

  7. JQurey---新尝试

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. Linux下查看Tomcat运行日志

    查看方式 1.先切换到:cd usr/local/tomcat5/logs2.tail -f catalina.out3.Ctrl+c 是退出tail命令/alt+E+R重置 部署常用指令 1.ps ...

  9. Django-F和Q函数作用与使用

    F函数 能够解析对现有查询对象的引用的对象. obj = Score.objects.get(stuid=') obj.score += 1 obj.order.save() 执行出的SQL语句 wh ...

  10. DemoKit编译过程

    E:\Project_code\EAE\src_rev_24139_A95LYD\Project\DemoKit>make release Checking uITRON - DemoKit r ...