• hdu 1207 dp加递归 经典递归 四根柱子


    一看汉诺塔的次数,第一感觉是数学题,但一看答案是dp出乎意料,

    对dp有了更加全面的理解,主要是递归的规划,从复杂的递归回归的

    基础的递归

    #include <stdio.h>
    #include <math.h>
    
    __int64 ans[65];
    
    double _min,temp,f[65];
    
    int main()
    {
    	int i,j,n;
    
    	f[0]=1;
    
    	for(i=1;i<65;i++)
    		f[i]=f[i-1]*2;
    
    	ans[1]=1;
    
    	for(i=2;i<65;i++)
    	{
    		_min=pow(2,64)-1;
    		for(j=1;j<i;j++)
    		{
    			temp=2*ans[j]+f[i-j]-1;//这里枚举j,先将j个盘子采用最优策略移到D(多余的)的柱子上,再将剩下的移到C柱子 
    
    			if(temp<_min)//上,即为3个柱子的汉诺塔模型(因为此时D柱子不可以用),再将j个盘子按照最优策略移到C 
    				_min=temp;
    		}
    		ans[i]=_min;
    	}
    
    	while(scanf("%d",&n)!=EOF)
    	{
    		printf("%I64d\n",ans[n]);
    	}
    	
    	return 0;
    }
    

      

  • 相关阅读:
    微信小程序
    js
    js
    uni
    uni/微信小程序
    uni/微信小程序
    ES6...扩展运算符(数组或类数组对象)
    微信小程序
    微信小程序
    玩转storm
  • 原文地址:https://www.cnblogs.com/jackes/p/2424153.html
Copyright © 2020-2023  润新知