hdu 1165 Eddy's research II

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1165


递推题。。由公式可以推出一些公式。

递推m=3时我推错了。。。

后面推出来。。。

m=0时 A(m,n)=n+1;

m=1时 A(m,n)=A(0,A(1,n-1))=A(1,n-1)+1=A(1,n-2)+1+1=……=n+2;

m=2时 A(m,n)=n*2+3   ⑴

m=3时 A(m,n)=A(2,A(m,n-1))  ⑵

 由⑴和⑵就  可以推出当n=3时  A(m,n)=  A(m,n-1)*2+3



下面是AC代码:

#include<iostream>
using namespace std;
/*int A(int m,int n)
{
if(m==0)
return n+1;
else if(m>0&&n==0)
return A(m-1,1);
else
return A(m-1,A(m,n-1));
}*/
int f[4][1000001];
int main()
{
	int m,n;
	int i;
	for(i=0;i<=1000000;i++)
	{
		f[0][i]=i+1;
		f[1][i]=i+2;
		f[2][i]=2*i+3;          //公差是2
	}
	f[3][0]=5;
	for(i=1;i<25;i++)
	{
		f[3][i]=2*f[3][i-1]+3;          //公差是8
	}
	
		
		while(cin>>m>>n)
		{
			
			printf("%d\n",f[m][n]);
		}
		return 0;
}


你可能感兴趣的:(hdu 1165 Eddy's research II)