hdu 1799 循环多少次?(组合)
题目是这样的:
如果代码中出现
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
这样的循环总次数符合组合公式C(n,m)=n!/(m!*(n-m)!),因为n值过大,不可以直接用公式
组合数学的递推公式:C(n,m)=C(n,m-1)+C(n-1,m-1),高中学过的。
代码如下:
#include<cstdio>
const int Max=2005;
int c[Max][Max];
void table(){
	for(int i=0;i<=2000;i++)
		c[i][0]=c[i][i]=1;
	for(int i=1;i<=2000;i++)
		for(int j=i+1;j<=2000;j++)
			c[j][i]=(c[j-1][i-1]+c[j-1][i])%1007;
}
int main()
{
	int t,m,n;
	table();
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&m,&n);
		printf("%d\n",c[n][m]);
	}
}												
											hdu 1799 循环多少次?(组合)的更多相关文章
- 暴力求解——hdu 1799 循环多少次?
		
Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算,如 ...
 - HDOJ(HDU) 1799 循环多少次?(另类杨辉三角)
		
Problem Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次 ...
 - hdu 1799 循环多少次?
		
题目 题意:给出n,m,其中m表示有几层循环,求循环的次数 ①如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算: ②如果代码中出现 fori=1;i<=n ...
 - HDU——1799循环多少次(杨辉三角/动态规划/C(m,n)组合数)
		
循环多少次? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
 - hdu 1799 (循环多少次?)(排列组合公式)
		
循环多少次? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
 - 2017ACM暑期多校联合训练 - Team 1  1006   HDU   6038   Function    (排列组合)
		
题目链接 Problem Description You are given a permutation a from 0 to n−1 and a permutation b from 0 to m ...
 - hdu 5698 瞬间移动(排列组合)
		
这题刚看完,想了想,没思路,就题解了 = = 但不得不说,找到这个题解真的很强大,链接:http://blog.csdn.net/qwb492859377/article/details/514781 ...
 - hdoj 1799 循环多少次?
		
循环多少次? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
 - hdu 4602 Partition 数学(组合-隔板法)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4602 我们可以特判出n<= k的情况. 对于1<= k<n,我们可以等效为n个点排成 ...
 
随机推荐
- redis.rpm 安装
			
yum install jemalloc wget http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/redis-3.0.7 ...
 - 十一 Socket编程
			
一. 计算机网络: 将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来在网络操作系统.网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 二. ...
 - ObjectMapper : can only instantiate non-static inner class by using default, no-argument constructor
			
Label_t lTrain = new ObjectMapper().readValue(s, Label_t.class); 因为Label_t是内部类,需要 1.static 2.无参构造函数
 - POJ 3436:ACM Computer Factory 网络流
			
ACM Computer Factory Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6247 Accepted: 2 ...
 - vue -   data 接收 props 的值
			
<template> <div> <div v-for="todo in a" :key="todo.id"> ...
 - Java笔记--枚举&注解
			
1.自定义枚举类的实现,例: class Season{ //1,提供类的属性,声明为rivate final private final String name; private final Str ...
 - Win 10 开启FTP与配置
			
转载:https://blog.csdn.net/qq_34610293/article/details/79210539 可能出现的问题是:设置共享文件,无法被共享.极大的可能原因是电脑防火墙的问题 ...
 - Django(六)实战2:向数据库添加,删除数据、重定向写法、重定向简写
			
一.向数据库添加图书数据 [上接]https://blog.csdn.net/u010132177/article/details/103831173 1)首先开启mysql服务,并运行项目 启动my ...
 - (九)微信小程序---for指令
			
对于数据是列表 wxml <view wx:for="{{dataList}}">{{index}}-{{item}}</view> 我们可以看到上面的代码 ...
 - cf 498 B. Name That Tune
			
不会不会,,,%%http://hzwer.com/5813.html #include<cstdio> #include<iostream> #include<algo ...