zoukankan      html  css  js  c++  java
  • HDU 1207 汉诺塔II 动态规划

    题目大意:还是汉诺塔的变种,改变的规则是有四根柱子,n个盘子,问一共要移动多少次?

    解题报告:有规律,但是没搞懂怎么来的,规律是:

    dp[1]=1;         

    dp[2]=dp[1]+2,   dp[3]=dp[2]+2;                                        (2个式子加2)

    dp[4]=dp[3]+4,    dp[5]=dp[4]+4,     dp[6]=dp[5]+4;           (3个式子加4)

    ....................

     1 #include<cstdio>
     2 int dp[70],p[70];
     3 void dabiao() {
     4     dp[1]=1;
     5     int i=2,c=2,flag=2;
     6     while(i<=64) {
     7         for(int j=1;j<=flag;++j)
     8         dp[i++]=dp[i-1]+c;
     9         c*=2;
    10         flag++;
    11     }
    12 }
    13 int main() {
    14     dabiao();
    15     int n;
    16     while(scanf("%d",&n)!=EOF)
    17     printf("%d\n",dp[n]);
    18     return 0;
    19 }
    20         
    View Code
  • 相关阅读:
    十二月31日
    十二月31号
    10,28
    10,27
    十月26
    十月22
    十月21
    十月二十
    十月16
    0227 数据库的知识
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3119884.html
Copyright © 2011-2022 走看看