您的位置:首页 > 其它

递推求解的基本方法hdu2044-2047

2017-12-16 01:22 204 查看
纯递推HDU2044一只小蜜蜂

http://acm.hdu.edu.cn/showproblem.php?pid=2044

int main()

{

long long f[100],t,a,b,n,temp;

scanf(“%lld”,&t);

while(t–)

{

scanf(“%lld %lld”,&a,&b);

if(a>b)

temp=a,a=b,b=temp;

f[0]=f[1]=1;

n=b-a+1;

for(int i=2;i<=n;i++)

f[i]=f[i-1]+f[i-2]; //到第I个蜂房的方式等于到第I个蜂房紧挨着的左边两个的方式的和

printf(“%lld\n”,f[n-1]);

}

return 0;

}

HDU2045不容易系列之(3)—— LELE的RPG难题

http://acm.hdu.edu.cn/showproblem.php?pid=2045

int main(){

int n,i;

long long f[10005]={0,3,6,6};

for(i=4;i<=50;i++)

f[i]=f[i-1]+2*f[i-2];//如果前i+1个色块是合法的那最后一块的颜色唯一有f[i-1]种可能;如果前f[i-1]不合法但是加一块后合法,那说明其不合法是因为收尾色块想同故此时f[i-2]是合法的,此时最后一块有两个颜色可以选择2*f[i-2]

while(scanf(“%d”,&n)!=EOF)

printf(“%lld\n”,f
);

return 0;

}

HDU 2046骨牌铺方格

http://acm.hdu.edu.cn/showproblem.php?pid=2046

这道题有坑要模拟大数

我开始是这样写的一直wa(关于大数模拟我现在只会加法后面会再总结)

int f[32];

int main()

{

int n,i;

f[1]=1;

f[2]=2;

f[3]=3;

for(i=4;i<=20;i++)

f[i]=f[i-1]+f[i-2];//这个就不用解释了吧

while(~scanf(“%d”,&n))

printf(“%d\n”,f
);

return 0;

}

AC码如下

int f[52][300];

int main()

{

int n,i,j,t;

f[1][0]=1;

f[2][0]=2;

f[3][0]=3;

for(i=4;i<=50;i++)

{

t=0;

for(j=0;j<300;j++)

{

f[i][j]=f[i-1][j]+f[i-2][j]+t;

t=f[i][j]/10;

f[i][j]=f[i][j]%10;

}

}

//printf(“%d**”,f[50][0]);

while(~scanf(“%d”,&n))

{

int k=299;

while(k>=0&&!f
[k])

k–; //把后面为0的那些排除

while(k>=0)

printf(“%d”,f
[k–]);

printf(“\n”);

}

return 0;

}

HDU2047阿牛的EOF牛肉串

http://acm.hdu.edu.cn/showproblem.php?pid=2047

限制条件是不能出现两个O相邻,那在已知f(1)到f(n-1)的前提下,求f(n)的值得时候,如果为E或者F的话,那就在之前的基础上随意放,没有限制,E,F都行一共就是2*f(n-1)种方案;如果最后一个为O的时候,需要考虑限制条件,那倒数第二个肯定不能放O,只能是E和F,那就和上面一样了一共有2*f(n-2)中方案,所以递推关系式为:f(n)=2*(f(n-1)+f(n-2));//开始的时候我想的是假设前n-1个合适,第n-1个不为’O’则最后一个有3种选择,第n-1个是‘O’最后一个有两种刻法,这是不正确的的http://blog.csdn.net/lostaway/article/details/5742571这个博主讲的挺好,关于子结构的选取还是这道题,很清楚

AC码

long long f[42];

int main() {

int n,i,j,t;

f[1]=3;

f[2]=8;

for(i=3; i<40; i++) {

f[i]=f[i-1]*2+f[i-2]*2;

}

while(~scanf(“%d”,&n)) {

printf(“%lld”,f
);

printf(“\n”);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: