P1096 $Hanoi$双塔问题
原题地址
题目描述
给定A、B、C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。
现要将这些圆盘移到CC柱上,在移动过程中可放在BB柱上暂存。要求:
(1)每次只能移动一个圆盘;
(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;
任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。
输入输出格式
输入格式:
一个正整数nn,表示在A柱上放有2n个圆盘。
输出格式:
一个正整数, 为完成上述任务所需的最少移动次数An。
输入输出样例
【输入样例1】 1 【输入样例2】 2
【输出样例1】 2 【输出样例2】 6
说明
【限制】
对于50%的数据,1≤n≤25
对于100%的数据,1≤n≤200
思路
通过模拟1-5,你可以发现一个关系式a[i]=(2i-1)*2。
只需要将a数组求出即可(不需用数组,直接求a[i])。
数据n很大,去要用高精乘和高精加。
高精乘代码
for(int i=1;i<=n+1;i++){for(int j=1;j<=a[0];j++){a[j]=a[j]*2+jw;jw=a[j]/10;a[j]=a[j]%10;}while(jw!=0){a[0]++;a[a[0]]=jw%10;jw=jw/10;}}
高精加代码
j=0;while(true){j++;a[j]=a[j]-2-qw;jw=0;while(a[j]<0){qw++;a[j]=a[j]+10;}if((j=a[0])||(qw=0)) break;}if(qw!=0){a[0]++;a[a[0]]=qw;}
代码
#include<iostream> #include<cstring> using namespace std; int n; int a[1000]; int jw,qw,j; int main(){cin>>n;a[0]=1;a[1]=1;for(int i=1;i<=n+1;i++){for(int j=1;j<=a[0];j++){a[j]=a[j]*2+jw;jw=a[j]/10;a[j]=a[j]%10;}while(jw!=0){a[0]++;a[a[0]]=jw%10;jw=jw/10;}}j=0;while(true){j++;a[j]=a[j]-2-qw;jw=0;while(a[j]<0){qw++;a[j]=a[j]+10;}if((j=a[0])||(qw=0)) break;}if(qw!=0){a[0]++;a[a[0]]=qw;} for(int i=a[0];i>=1;i--)cout<<a[i];return 0; }
转载于:https://www.cnblogs.com/zhouxuanbodl/p/10388643.html
P1096 $Hanoi$双塔问题相关推荐
- SENet双塔模型:在推荐领域召回粗排的应用及其它
前言 目前,双塔结构在推荐领域里已经是个常规方法了,在召回和粗排环节的模型选型中,被广泛采用.其实,不仅仅是在推荐领域,在其它领域,双塔结构也已经被越来越多得用起来了.比如,在当代搜索引擎的召回环节, ...
- 【推荐系统】双塔模型中的负采样
作者:十方 推荐模型中双塔模型早已经普及.一个塔学用户表达.一个塔学item表达.很多双塔模型用各种各样的in-batch负采样策略.十方也是如此.往往使用比较大的batchsize,效果会比较好,但 ...
- 召回:是塔,是塔,但不是双塔!
query到doc这种文本到文本的召回,通常就是各种双塔召回,再排序的过程.谷歌这篇论文<Transformer Memory as a Differentiable Search Index& ...
- 双塔模型没效果了?请加大加粗!
很多研究表明,双塔在一个域表现不错,在其他域表现不好了.一个广泛被认同的观点就是双塔仅仅用了最后一层的点积算分,这限制了模型的召回能力.这篇论文<Large Dual Encoders Are ...
- 向量召回 MIND多兴趣双塔模型
作者:十方,公众号:炼丹笔记 熟悉双塔的人都知道,在用户侧,模型最后往往都生成一个向量去检索,这个向量不足以表达用户的多兴趣,<Multi-Interest Network with Dynam ...
- 负样本的艺术,再读Facebook双塔向量召回算法
负样本的艺术,再读Facebook双塔向量召回算法 Facebook这篇Embedding召回的论文,之前已经有几篇文章涉及过了,分别是<Embeding-based Retrieval in ...
- 做向量召回 All You Need is 双塔
十方@炼丹笔记 对于基于向量召回,那就不得不提到双塔.为什么双塔在工业界这么常用?双塔上线有多方便,真的是谁用谁知道,user塔做在线serving,item塔离线计算embeding建索引,推到线上 ...
- Facebook向量召回双塔模型
不知道多少人还记得 <做向量召回 All You Need is 双塔>那篇,那篇介绍了国内外各个大厂做召回的用的双塔模型,其中提到一篇<Embeding-based Retriev ...
- 推荐搜索炼丹笔记:双塔模型在Airbnb搜索排名中的应用
作者:一元,公众号:炼丹笔记 Improving Deep Learning For Airbnb Search(KDD20) 本文是一篇偏实践的文章,不讲太多虚的,什么有效什么无效,您请细品! 将深 ...
- 推荐搜索炼丹笔记:向量召回 MIND多兴趣双塔模型
作者:十方,公众号:炼丹笔记 熟悉双塔的人都知道,在用户侧,模型最后往往都生成一个向量去检索,这个向量不足以表达用户的多兴趣,<Multi-Interest Network with Dynam ...
最新文章
- get_live2d获取不到500_有人手机收不到验证码?警方打掉一“薅羊毛”产业链,全国已有570多万台手机被控制……...
- Android中.9.png图片的使用过程和原理
- centos 6.5 安装 lamp 后mysql不能启动_CentOS 6.5 系统 LAMP(Apache+MySQL+PHP)安装步骤
- 股票买卖(信息学奥赛一本通-T1302)
- Java Concurrent--死锁/饥饿/活锁
- swoole_event_add实现异步
- unity3D读取Txt文件中信息
- 【java笔记】random类生成随机数
- Unity单例模式+例子
- 宏基4750网卡驱动linux,宏基4750g网卡驱动下载
- php设置北京时间(时区)
- wps/excel 正则表达式 提取数字
- 小马哥--高仿三星G9200 主板型号A208刷机拆机主板图
- ERROR: Failed to parse XML in E:\LWJ\AndroidStudioProjects\MyApplication6\app\src\main\AndroidManife
- ggplot2设置坐标轴范围_使用 ggplot2 进行高级绘图—R读书笔记(二)
- python怎么绘制饼图_Matplotlib绘制饼图
- dblp搜文献时各颜色含义
- php创建一个猫咪,html5的应用-画一个可爱的小猫咪效果图
- python 梯度下降法实现一元线性回归
- pjsip 屏幕直播
热门文章
- .NET Core 2.0 Preview 2为开发人员带来改进
- Html5 绘制旋转的太极图
- Error writing file '/tmp/...' (Errcode: 28)
- [UI]抽屉菜单DrawerLayout分析(二)
- 分页功能 (包含增删改查)工具类
- ETL 工具下载全集 包括 Informatica Datastage Cognos( 持续更新)
- Kernel PCI总线框架
- 云大使推广中的常见热门问题
- python经典问题在stack overflow上的回答
- MyEclipse默认编码为GBK,修改为UTF8的方法