题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077

还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢?(只允许最大的放在最上面)当然最后需要的结果是盘子从小到大排在最右边。 

Input输入数据的第一行是一个数据T,表示有T组数据。 
每组数据有一个正整数n(1 <= n <= 20),表示有n个盘子。 
Output对于每组输入数据,最少需要的摆放次数。 
Sample Input

2
1
10

Sample Output

2
19684

题解:由汉诺塔3知从左往右的递推关系式为F[n]=F[n-1]*3+2,而此题允许最大盘在上记其步骤数为f[n],

则f[n]=F[n-1]+2。原理很简单,将上面n-1个盘看为整体先将其移到B上再将 第n个盘移到B上再将其移到C上,最后再将n-1个移到C上

 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
#include <queue>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
bool cmp(int x,int y)
{
return x>y;
}
const int N=;
const int mod=1e9+;
int main()
{
std::ios::sync_with_stdio(false);
ll F[],f[],t,n;
F[]=,f[]=;
for(int i=;i<=;i++)
F[i]=*F[i-]+;
for(int i=;i<=;i++)
f[i]=F[i-]+;
cin>>t;
while(t--){
cin>>n;
cout <<f[n]<< endl;
}
return ;
}

最新文章

  1. Windows下安装scikit-learn
  2. PHPExcel
  3. 6.7-3将数组arr中索引值为2的元素替换为“bb”
  4. POJ1011
  5. JS开发windows phone8.1系列之2
  6. 更快的方式实现PHP数组去重
  7. scikit-learn主要模块和基本使用方法
  8. 如何通过XShell传输文件
  9. 【循序渐进学Python】8.面向对象的核心——类型(下)
  10. pthread_cond_wait 信号量丢失
  11. 命令行dump anr traces.txt文件
  12. LeetCode144:Binary Tree Preorder Traversal
  13. php 实现同一个账号同时只能一个人登录
  14. Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程
  15. [大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用&lt;1&gt;
  16. JS判断输入类型是否为正整数
  17. ASP.NET MVC编程——缓存
  18. MYSQL常用的性能指标总结和归纳
  19. SQL 读取csv 文件批量插入数据
  20. 通过LVM给Linux扩容

热门文章

  1. C++ 常用算法
  2. Redis入门到高可用(十一)—— 慢查询
  3. SAP 创建 component
  4. function module 调用类对象
  5. (转)通过Ajax使用FormData对象无刷新上传文件
  6. NN中的激活函数【转载】
  7. Case when then esle end
  8. js动态规划---最长子序列(lcs)
  9. 20165321 2017-2018-2《Java程序设计》课程总结
  10. Node.js进击基础一(5-11事件模块)