HDU1799 循环多少次?【找规律】

循环多少次?

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

Total Submission(s): 2821    Accepted Submission(s): 1022

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

在演草纸上列表格找规律。

#include <stdio.h>
#define maxn 2002

int dp[maxn][maxn];

void count()
{
	int i, j;
	for(i = 1; i < maxn; ++i)
		dp[i][1] = i % 1007;
	for(i = 1; i < maxn; ++i)
		for(j = 2; j < maxn; ++j)
			dp[i][j] = (dp[i-1][j] + dp[i-1][j-1]) % 1007;
}

int main()
{
	int n, m, t;
	count();
	scanf("%d", &t);
	while(t--){
		scanf("%d%d", &m, &n);
		printf("%d\n", dp[n][m]);
	}
	return 0;
}

HDU1799 循环多少次?【找规律】

时间: 2024-12-15 12:28:13

HDU1799 循环多少次?【找规律】的相关文章

1005:取余,循环,找规律

Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n). Input The input consists of multiple test cases. Each test case cont

hdu1005 超规模&amp;gt;&amp;gt;找规律&amp;gt;&amp;gt;有限次数循环

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 //由于题目有两项在变,一项有7种可能,全部共同拥有49种情况. /* 超规模>>算法优化 >>找规律>>规律变化 >>有限次数内循环>>找到变化范围 */ int main() { int f[51]={49,1,1}; int a,b,n,i; while( cin>>a>>b>>n,a+b+n){ fo

【55测试】【字符串】【栈】【找规律】

集训第二天,额,考崩了. 第一题 hao 大意:(这个名字就不要在意了,其实是祖玛游戏) 模拟祖玛游戏的模式,给一个'A'~'Z'的字符串,然后有t个插入操作为 “ 添加后的在原字符串的位置 x  插入元素 c ”,字符串中有超过或等于 3 个相同的字符,则被消除,输出每次操作后剩余的字符串,如果为空,则输出“-”. 样例: ACCBA                     输出:  ABCCBA 5   AABCCBA 1 B AABBCCBA 0 A - 2 B A 4 C 0 A 解:

2016(胡赛复现)_大数找规律

Time Limit: 5 Sec  Memory Limit: 128 MB Description 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1. 1≤a≤n,1≤b≤m;  2. a×b 是 2016 的倍数. Input 输入包含不超过 30 组数据. 每组数据包含两个整数 n,m (1≤n,m≤109). Output 对于每组数据,输出一个整数表示满足条件的数量. Sample Input 32 63 2016 2016 1000000000 1000

找规律/hdu 1005 Number Sequence

题意 给出a,b,n,已知f[1]=f[2]=1,f[i]=(a*f[i-1]+b*f[i-2]) mod 7 输出f[n] 数据范围 1 <= A, B <= 1000, 1 <= n <= 100,000,000 分析 首先,直接求..肯定是不行的 会tle 会mle 但是可以找到规律,例如对a=1,b=1 这个数据,有 f1=1 f2=1 f3=3 f4=5 f5=4 f6=0 f7=1 f8=1 f9=3 f10=5 f11=4 f12=0 ???? 我们会发现有一定的规律

HDU 4639 Hehe(字符串处理,斐波纳契数列,找规律)

题目 //每次for循环的时候总是会忘记最后一段,真是白痴.... //连续的he的个数 种数 //0 1 //1 1 //2 2 //3 3 //4 5 //5 8 //…… …… //斐波纳契数列 //不连续的就用相乘(组合数)好了 #include<iostream> #include<algorithm> #include<string> #include <stdio.h> #include <string.h> #include &l

【ZOJ】3785 What day is that day? ——浅谈KMP应用之ACM竞赛中的暴力打表找规律

首先声明一下,这里的规律指的是循环,即找到最小循环周期.这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”. 先来看一道题 ZOJ 3785 What day is that day? Time Limit: 2 Seconds      Memory Limit: 65536 KB It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? Input There are multiple tes

hdu 1021 斐波那契2,找规律

背景:暴力必定超数据结构范围,因为斐波那契类型数列,成指数形式爆炸增长.故写了数据发现取余30不影响结果. 学习:1.数论类题可以写出几组数据找规律,猜结论. 我的代码: #include<stdio.h> int str[1000009] = { 7, 11 }; int main() { int n; for (int i = 2; i <=1000000; i++){ str[i] = (str[i - 1] + str[i - 2])% 30; } while (scanf(&q

hdu4861 我只能说这是找规律=.=

先说明一下题意,因为开始我就没太读懂,感觉作者不是没交代清楚就是让做题的人自己去领悟,开始我不知道球是可以随便选的,然后那个关系式到底是最后一个数模p,还是整体模P........最后确定是整体模P 一开始的思路就是找规律,找公式,由于数据非常大不可能用循环,但推了好久也没发现什么公式.....逼得没办法了我就想是不是随便找几个n 再找几个素数把答案都列出来看一下?   但由于工程有点庞大,我就去看了下题解........但我居然看打了费马小定理,作为一个只会高中数学的渣渣,表示费马小定理是什么