博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1242 新汉诺塔(hanio)
阅读量:5948 次
发布时间:2019-06-19

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

这道题加深了hanio的理解

如果我们要移动第n个盘子。那么就是说,n+1以后(包括n+1)的盘子都已经到位了


#include
#include
using namespace std;int no[4];int ai[4];int aim[50];int pla[50];long long ans;void move(int num,int f,int t){ ans+=1; printf("move %d from %c to %c\n",num,f+'A'-1,t+'A'-1); pla[num]=t; return ;}void dfs(int num,int from,int to,int pass){ if(from==to) return ; for(int i=num-1;i>=1;i--) dfs(i,pla[i],pass,6-pla[i]-pass); move(num,from,to); return ;}int main(){ int n; scanf("%d",&n); int pass; for(int i=1;i<=3;i++) { scanf("%d",&no[i]); for(int j=1;j<=no[i];j++) { scanf("%d",&pass); pla[pass]=i; } } for(int i=1;i<=3;i++) { scanf("%d",&ai[i]); for(int j=1;j<=ai[i];j++) { scanf("%d",&pass); aim[pass]=i; } } for(int i=n;i>=1;i--) dfs(i,pla[i],aim[i],6-pla[i]-aim[i]); printf("%lld",ans); return 0;}

转载于:https://www.cnblogs.com/Lance1ot/p/8612539.html

你可能感兴趣的文章
C 语言静态变量的作用域和生存周期(ZZ)
查看>>
C++是可以在类里面定义和类名相同的变量的
查看>>
Linux socket 编程中 write 函数使用的注意事项
查看>>
eclipse开发环境
查看>>
如何计算硬盘、RAID组与Ceph的IOPS!!!
查看>>
18至今,学习Linux让我快速成长的三件事
查看>>
keepalived+nginx搭建高可用几个注意点
查看>>
pyinstaller 打包后运行错误
查看>>
一步一步学Ruby(十六):符号
查看>>
Spring Session + redis实现session共享
查看>>
阿里云的maven仓库
查看>>
hash table碰撞处理
查看>>
Oracle事务
查看>>
Spark2.0操作ES
查看>>
代码创建UISearchDisplayCountroller
查看>>
Android中的Handler机制
查看>>
揭秘jbpm流程引擎内核设计思想及构架
查看>>
PTSSpringBoard
查看>>
SHSidebarController
查看>>
微信公众号接口添加菜单时错误(errcode":40017 invalid button type)
查看>>