HDU ACM 1996 汉诺塔VI

分析:每个盘子都可以放到三个柱子上的任意一个,所以是3^n。

#include<iostream>
using namespace std;

int main()
{
	__int64 num[31]={1};
	int i,t,n;

	for(i=1;i<=30;i++)
		num[i]=num[i-1]*3;

	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		printf("%I64d\n",num[n]);
	}
    return 0;
}
时间: 2024-12-17 03:47:10

HDU ACM 1996 汉诺塔VI的相关文章

HDU 1996 汉诺塔VI

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1996 n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下往上的大小仍保持如下关系 : n=m+p+q a1>a2>...>am b1>b2>...>bp c1>c2>...>cq 计算所有会产生的系列总数. Input包含多组数据,

HDU ACM 1207 汉诺塔II

解析: 1.先看汉诺塔1的情况 a.只有一个盘子时,只需挪动一步: b.假如n个盘子要移动An步,则有n+1个盘子可以先通过An步把上面的n个盘子挪到第二个柱子上,再挪最大的盘子,最后把n个盘子挪到大的上面,总共2An+1步,则有A(n+1)=2An+1. c.以上式子可推得An=2^n-1. 2.回过来看该題,该题多加了一根柱子,现在有四根柱子了,分别是a,b,c,d,计算将n个盘从第一根柱子a全部移到最后一根柱子d上所需的最少步数,而且不能够出现大的盘子放在小的盘子上面. a.设F[n]为所

ID 1996 汉诺塔VI

Problem Description n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 : n=m+p+q a1>a2>...>amb1>b2>...>bpc1>c2>...>cq计算所有会产生的系列总数. Input 包含多组数据,首先输入T,表示有T组数据.每个数据一行,是盘子的数目N<30.

HDU 1996 汉诺塔VI (排列组合)

题意:... 析:每次都是有三种放法,1,2,3,根柱子,所以就是3^n次方. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring&

HDU1996 汉诺塔VI

问题链接:HDU1996 汉诺塔VI.水题,用C语言编写程序. 本题实际上是计算3^n.编程中需要注意输出格式. AC的C语言程序如下: /* HDU1996 汉诺塔VI */ #include<stdio.h> #include<math.h> int main (void) { int t, n; scanf("%d",&t); while(t--) { scanf("%d", &n); printf("%.lf

HDU1996 汉诺塔VI 【递推】

汉诺塔VI Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1374    Accepted Submission(s): 984 Problem Description n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各

汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII

汉诺塔II:(hdu1207) /先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,如今要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数.这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把 上面的n-1个放在B上,把最大的放在目标C上,再把N-1个放回到C上就可以. </pre><p></p>如今是汉若塔II,改为四个塔,開始方程想简单了,不是最优的.给出网上的一种最优解法例如以下:(1)将x(1<=x&l

汉诺塔VI

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1834    Accepted Submission(s): 1279 Problem Description n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下

ACM_汉诺塔问题(水)

Problem Description: 最近小G迷上了汉诺塔,他发现n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 : n=m+p+q a1>a2>...>am b1>b2>...>bp c1>c2>...>cq 小G希望聪明的你能告诉他所有会产生的系列总数. Input: 输入一个N,N<30