hdu1165 规律递推

题意:给了公式,求A(m,n)。

并不知道为什么被杭电分类塞进了dp专题,但是我一开始显然看到这个题就觉得给那个公式用函数递归一下答案肯定能出来了,只不过既然放在了dp专题里面估计这样暴力求解会TLE的吧(是的当时我还天真的以为真的是dp```),然后敲了一遍的确T了不出意料,但是在测试样例的时候我发现m=0 、1的时候好像都很有规律的样子(装毛线深沉,就是每次加一嘛```)然后我就用刚才T的程序打了一部分表```然后规律就出来了```然后就按规律重敲了一下,然后```然后```然后```你们以为我会WA吗```显然就这么A掉了```但是好学的我并不甘心,于是就去问了翔神,得到答复:分类分错了这就是一道公式题```好吧,再见吧朋友我破碎的好奇心```

 1 #include<stdio.h>
 2 /*
 3 int A(int m,int n){
 4     if(m==0)return n+1;
 5     if(m>0&&n==0)return A(m-1,1);
 6     if(m>0&&n>0)return A(m-1,A(m,n-1));
 7 }
 8
 9 int main(){
10     int n,m;
11     while(scanf("%d%d",&m,&n)!=EOF){
12         printf("%d\n",A(m,n));
13     }
14     return 0;
15 }
16 */
17 int m3n[25];
18 void fun(){
19     m3n[0]=5;
20     for(int i=1;i<=24;i++)m3n[i]=2*m3n[i-1]+3;
21 }
22
23 int main(){
24     int n,m;
25     fun();
26     while(scanf("%d%d",&m,&n)!=EOF){
27         if (m==0)printf("%d\n",n+1);
28         else if(m==1)printf("%d\n",n+2);
29         else if(m==2)printf("%d\n",2*n+3);
30         else if(m==3)printf("%d\n",m3n[n]);
31     }
32     return 0;
33 }

时间: 2024-08-14 20:48:55

hdu1165 规律递推的相关文章

51nod 1350 斐波那契表示 (找规律递推)

分析: - -! 找规律...首先可以归纳证明,对于n,最佳的取法是先取不大于n的最大的那个斐波那契数,然后递推.从而可以得到算出F(n)的一个方法,但是n的范围太大了,先算出n较小的情况,会发现: 第三列为F(n),第二列为G(n),可以看出第k块是由k-1块和k-2块+1合在一起得到的,从而可以先预处理前k块之和(k不会超过100),然后对于每个n,先找到最大的不超过n的那块,然后对剩下的项递归,总的复杂度为O(T*logn). 1 #include<iostream> 2 #includ

POJ 2229 sumset ( 完全背包 || 规律递推DP )

题意 : 给出一个数 n ,问如果使用不同 2 的幂的和来组成这个数 n 有多少种不同的方案? 分析 :  完全背包解法 将问题抽象==>有重量分别为 2^0.2^1.2^2-2^k 的物品且每种物品可无限取,问有多少种方案来填满容量为 n 的背包? 之前并不知道背包还能用来计数....... 有一道裸的背包计数问题可以作为练习 ==> HDU 1284 定义 dp[ i ][ j ] 为前 i 种物品组成总重量 j 的方案数为多少.初始化为 dp[ 0 ][ 0 ] = 1 其他为 0 则状

2018南京区域赛G题 Pyramid——找规律&amp;&amp;递推

先手动推出前10项,再上BM板子求出递推式 $A_n = 5A_{n-1} - 10A_{n-2} + 10A_{n-3} - 5A_{n-4} + A_{n-5}$,根据特征根理论可求出特征方程 $(x-1)^5$,设 $A_n = k_1n^4 + k_2n^3 + k_3n^2+k_4n+k_5$,代入前5项求出系数(用了高斯消元法解方程组). 这样虽然做出来了,但是感觉比较浪费时间,因为BM板子和高斯消元法的板子都不短,对手残狗不友好. 差分 首先前7项分别为1  5 15 35 70

1002. [FJOI2007]轮状病毒【找规律+递推】

Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示 N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不 同的3轮状病毒,如下图所示 现给定n(N<=100),编程计算有多少个不同的n轮状病毒 Input 第一行有1个正整数n Output 计算出的不同的n轮状病毒数输出 Sample Inpu

UVa11040 - Add bricks in the wall (规律递推)

找规律的题 [x] [a][x-a] [y] [    ][z] 这里面xyz都已知,所以可以求出a = (x + y - z ) /2 #include<cstdio> int a[9][9]; int main() { int t; scanf("%d",&t); while(t--){ for(int i=0;i<9;i+=2) for(int j=0;j<=i;j+=2) scanf("%d",&a[i][j]); f

踩方格(找规律 递推)

踩方格 时间限制: 1 Sec  内存限制: 128 MB提交: 8  解决: 7[提交][状态][讨论版][命题人:quanxing] 题目描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设: a.每走一步时,只能从当前方格移动一格,走到某个相邻的方格上: b.走过的格子立即塌陷无法再走第二次: c.只能向北.东.西三个方向走: 请问:如果允许在方格矩阵上走n步,共有多少种不同的方案.2种走法只要有一步不一样,即被认为是不同的方案. 输入 允许在方格上行走的步数n(n≤20). 输出 计

ACM_递推题目系列之一涂色问题

递推题目系列之一涂色问题 Time Limit: 2000/1000ms (Java/Others) Problem Description: 有排成一行的n个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法. Input: 输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50). Output: 对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行

HDU1165: Eddy&#39;s research II(递推)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1165 果断不擅长找规律啊,做这种题静不下心来. Ackermann function can be defined recursively as follows: 递推如上图, 0<m<=3,0<=n<=1000000,,当m==3时,n>=0&&n<=24. 首先发现a(0,i)=i+1; 另外n==0时,a(1,0)=a(0,1)=2; 当m==1,n>

递推+高精度+找规律 UVA 10254 The Priest Mathematician

题目传送门 1 /* 2 题意:汉诺塔问题变形,多了第四个盘子可以放前k个塔,然后n-k个是经典的汉诺塔问题,问最少操作次数 3 递推+高精度+找规律:f[k]表示前k放在第四个盘子,g[n-k]表示经典三个盘子,2 ^ (n - k) - 1 4 所以f[n] = min (f[k] * 2 + g[n-k]),n<=10000,所要要用高精度,另外打表能看出规律 5 */ 6 /************************************************ 7 * Auth