题目描述                     Description

给定A、B、C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求:

(1)每次只能移动一个圆盘;

(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;

任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。

输入描述                 Input Description              

为一个正整数n,表示在A柱上放有2n个圆盘。

                输出描述                 Output Description              

仅一行,包含一个正整数, 为完成上述任务所需的最少移动次数An。

                样例输入                 Sample Input              

2

样例输出                 Sample Output              

6

数据范围及提示                 Data Size & Hint              

对于50%的数据,1<=n<=25

对于100%的数据,1<=n<=200

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath> using namespace std; int n;
int an[],l;
int bn[];
int cn[]; void add()
{
memset(bn,,sizeof(bn));
int i,j;
for(i = ;i<=l;i++)
{
bn[i+] = (an[i]+an[i]+bn[i])/;
an[i] = (an[i]+an[i]+bn[i])%;
}
if(an[l] != ) l++;
}
void add2()
{
memset(bn,,sizeof(bn));
memset(cn,,sizeof(cn));
bn[] = ;
int i,j;
for(i = ;i<=l;i++)
{
cn[i+] = (an[i]+bn[i]+cn[i])/;
an[i] = (an[i]+bn[i]+cn[i])%;
}
if(an[l]) l++;
} int main()
{
int i,j,k;
int n;
memset(an,,sizeof(an));
an[] = ,l = ;
cin>>n;
for(i = ;i<=n;i++)
{
add();
add2();
}
add();
for(i = l-;i>=;i--)
printf("%d",an[i]);
cout<<endl;
return ;
}

codevs1145的更多相关文章

随机推荐

  1. xmanager 在 Windows 下远程桌面连接 麒麟

    编辑/etc/gdm/custom.conf,添加如下内容: [daemon] RemoteGreeter=/usr/libexec/gdmgreeter  注:“远程登录界面与本地登录界面相同”功能 ...

  2. 用户"IIS APPPOOL\xxxxxxxx"登录失败解决方案

    Server Error in '/' Application.-------------------------------------------------------------------- ...

  3. jfreechart中文乱码问题解决方案(转)

    参考网址:http://zhidao.baidu.com/link?url=y88rR1_aAHaFofonx9o_IaEu87MpkTQImsqDcy587eG55JkfQV6EzzzloIgXuQ ...

  4. quick-x 2.2.5 DragonBones 某些fla导出使用后player卡死

    1 2 3 4 5 6 7 8 9 10 11     --test 龙骨   self._db = dragonbones.new({             skeleton="game ...

  5. <转>Python的内存泄漏及gc模块的使用分析

    一般来说在 Python 中,为了解决内存泄漏问题,采用了对象引用计数,并基于引用计数实现自动垃圾回收.由于Python 有了自动垃圾回收功能,就造成了不少初学者误认为自己从此过上了好日子,不必再受内 ...

  6. jsp基础之 jstl

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  7. Marineking wilyin

    A - Marineking wilyin Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Ot ...

  8. ckeditor 使用手册

    CKEditor使用手册 在使用CKEditor过程中遇到了一些问题,现把它整理成手册,以便随时翻阅. 在页面<head>中引入ckeditor核心文件ckeditor.js <sc ...

  9. how to create virtual network in OS X 10.9

    ifconfig lo0 alias 172.16.123.1 will add an alias IP 172.16.123.1 to the loopback adapter sudo ifcon ...

  10. 使用notepad++学习python爬虫,print网页中文乱码问题

    今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notep ...