洛谷 P1760 通天之汉诺塔
来源:互联网 发布:nginx 反向代理配置项 编辑:程序博客网 时间:2024/04/28 21:41
题目描述
在你的帮助下,小A成功收集到了宝贵的数据,他终于来到了传说中连接通天路的通天山。但是这距离通天路仍然有一段距离,但是小A突然发现他没有地图!!!但是幸运的是,他在山脚下发现了一个宝箱。根据经验判断(小A有经验吗?),地图应该就在其中!在宝箱上,有三根柱子以及在一根柱子上的n个圆盘。小A在经过很长时间判断后,觉得这就是hanoi塔!(这都要琢磨)。但是移动是需要时间的,所以小A必须要通过制造延寿药水来完成这项任务。现在,他请你告诉他需要多少步完成,以便他造足够的验收药水。时限1s。
输入输出格式
输入格式:
一个数n,表示有n个圆盘
输出格式:
一个数s,表示需要s步。
输入输出样例
输入样例#1:
input1:31
inout2:15
输出样例#1:
output1:2147483647
output2:32767
说明
对于所有数据n<=15000
很容易的练手题哦!
【分析】
更一道以前水过的一道水题
答案=2^n-1,高精度模板题
【代码】
#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define ll long long#define M(a) memset(a,0,sizeof a)#define fo(i,j,k) for(i=j;i<=k;i++)using namespace std;inline void calc(int x,int k);int tot,siz,n;int pri[50005],num[50005],get[50005];int tmp[50005],c[50005],s[50005],y[50005],ans[50005];bool vis[50005];int main(){ int i,j,n; scanf("%d",&n); ans[0]=ans[1]=1; while(n--) { fo(i,1,ans[0]) ans[i]*=2; fo(j,1,ans[0]) { ans[j+1]+=ans[j]/10; ans[j]%=10; } ans[0]++; if(ans[ans[0]]==0) ans[0]--; } for(i=ans[0];i>=2;i--) printf("%d",ans[i]); printf("%d\n",ans[1]-1); return 0;}
1 0
- 洛谷 P1760 通天之汉诺塔
- 洛谷 P1760 通天之汉诺塔
- 洛谷 P1759 通天之潜水
- 洛谷 P1759 通天之潜水
- 洛谷 P1757 通天之分组背包
- 洛谷P1757 通天之分组背包
- |洛谷|动态规划|P1757 通天之分组背包
- 评《狄仁杰之通天帝国》
- luogu P1759 通天之潜水
- 乔致庸毕生的三大项目之三:汇通天下、货通天下
- 乔致庸毕生的三大项目之三:汇通天下、货通天下
- 通天秘笈
- 通天塔
- SSL P1760 商店选址问题
- 期待再造通天塔
- 阿里巴巴 汇通天下
- 通天塔计划
- 星通天使 官网
- php源码之路第六章第一节 (内存管理概述)
- OJ_0039.字符个数
- JS特效 xmind思维导图
- 嵌入式数据库sqlites编程
- java与c语言
- 洛谷 P1760 通天之汉诺塔
- C语言-数据结构-哈夫曼编码-Huffman-源代码
- Android开发学习之路-SnackBar使用心得
- 理想的设计特征
- R语言学习路线图以及R数据挖掘包
- 软考设计师总结(三)——总结
- Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
- linux grep命令的使用见解
- 【转】写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”