HDU2077

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2077相关的知识,希望对你有一定的参考价值。

  嗯没错,最近和汉诺塔有仇,继续水一波汉诺塔IV

#include<iostream>
#include<cstring>

#define LL long long
#define N 30

using namespace std;

LL f[4][4][4][N];

LL solve(int a,int b,int c,int n,int &all){
	if(n == 0) return 0;

    if(f[a][b][c][n]) return f[a][b][c][n];

    if(n == all){
        return f[a][b][c][n] = solve(a,c,b,n-1,all) + 2 + solve(c,b,a,n-1,all);
    }
    else if(n == 1){
        if(a == 2 || b == 2) return f[a][b][c][n] = 1;
        else return f[a][b][c][n] = 2;
    }
    else if(a == 2){
        return f[a][b][c][n] = solve(a,c,b,n-1,all) + 1 + solve(c,a,b,n-1,all) + solve(a,b,c,n-1,all);
    }
    else if(b == 2){
        return f[a][b][c][n] = solve(a,b,c,n-1,all) + solve(b,c,a,n-1,all) + 1 + solve(c,b,a,n-1,all);
    }
    else{
        return f[a][b][c][n] = solve(a,c,b,n-1,all) + solve(c,b,a,n-1,all) + 1 + solve(b,c,a,n-1,all) + solve(c,a,b,n-1,all) + 1 + solve(a,c,b,n-1,all) + solve(c,b,a,n-1,all);
    }
}

int main(){
    int n,T;
    cin >> T;
    while(T--){
        cin >> n;
        cout << solve(1,3,2,n,n) << endl;
        memset(f,0,sizeof(f));
    }
    return 0;
}

  感觉和III没啥区别嗯。。。

以上是关于HDU2077的主要内容,如果未能解决你的问题,请参考以下文章

RTX 3080赛博朋克2077定制版公布

Steam春节特惠马上开启,2077首次打折巫师3新史低价,2077和巫师3的源代码泄露,黑马游戏英灵神殿销量破百万

机械仿真基于matlab GUI直齿圆柱齿轮应力计算含Matlab源码 2077期

机械仿真基于matlab GUI直齿圆柱齿轮应力计算含Matlab源码 2077期

30分钟全看懂127个常用的JS程序片段

这款Steam收费游戏转为免费!《GTA》因暴力或全面禁售!2077源代码已被拍卖!