博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codevs1145
阅读量:5055 次
发布时间:2019-06-12

本文共 1330 字,大约阅读时间需要 4 分钟。

题目描述                     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
#include
#include
#include
using namespace std;int n;int an[100000],l;int bn[100000];int cn[100000];void add(){ memset(bn,0,sizeof(bn)); int i,j; for(i = 0;i<=l;i++) { bn[i+1] = (an[i]+an[i]+bn[i])/10; an[i] = (an[i]+an[i]+bn[i])%10; } if(an[l] != 0) l++;}void add2(){ memset(bn,0,sizeof(bn)); memset(cn,0,sizeof(cn)); bn[0] = 1; int i,j; for(i = 0;i<=l;i++) { cn[i+1] = (an[i]+bn[i]+cn[i])/10; an[i] = (an[i]+bn[i]+cn[i])%10; } if(an[l]) l++;}int main(){ int i,j,k; int n; memset(an,0,sizeof(an)); an[0] = 1,l = 1; cin>>n; for(i = 2;i<=n;i++) { add(); add2(); } add(); for(i = l-1;i>=0;i--) printf("%d",an[i]); cout<

 

转载于:https://www.cnblogs.com/wos1239/p/4367104.html

你可能感兴趣的文章
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>
使用ionic cordova build android --release --prod命令打包报有如下错误及解决方法
查看>>
BZOJ 2338 HNOI2011 数矩形 计算几何
查看>>
关于页面<!DOCTYPE>声明
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
C++标准库vector使用(更新中...)
查看>>
cocos2d-x 2.2.6 之 .xml文件数据读取
查看>>
枚举的使用
查看>>
BZOJ 1531 二进制优化多重背包
查看>>
BZOJ 2324 (有上下界的)费用流
查看>>