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 }
View Code

 

你可能感兴趣的:(HDU)