Accept: 590    Submit: 1506
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

“汉诺塔”,是一个众所周知的古老游戏。现在我们把问题稍微改变一下:如果一共有4根柱子,而不是3根,那么至少需要移动盘子多少次,才能把所有的盘子从第1根柱子移动到第4根柱子上呢?

为了编程方便,您只需要输出这个结果mod 10000的值。

 Input

该题含有多组测试数据,每组一个正整数n。(0<n<=50000)

 Output

一个正整数,表示把n个盘子从第1根柱子移动到第4根柱子需要的最少移动次数mod 10000的值。

 Sample Input

15

 Sample Output

129

做法:找规律
#include<iostream>
using namespace std;
int main()
{  int n;  while(cin>>n && n!=0){  int f[50001]={0};  //不能用int f[n+1];int p = 1;  int q = p;  int k = 1;  for(int i = 1; i <= n; i++){  f[i] = (f[i-1] + k) % 10000;  q--;  if(q==0){  p++;  q = p;  k *= 2;  k %= 10000;}  }  cout<<f[n]<<endl;  }  return 0;
}  

该题用递归也可以做,但仅限于数很小的情况下

f[n] = min{2*f[j]+H[n-j]}

2*f[j]表示从A移动j个盘子到B再从B移动到D的所需次数,H[n-j]则是三塔问题中将n-j个盘子从A移到D所需要的次数

另一种方法就是通过前几个数,进行找规律,写出通项公式,一层一层往上求解

f[n] = f[n-1] + 2^k

(k=0时,进行1次,k=1时进行2次)

转载于:https://www.cnblogs.com/wshyj/p/6489113.html

Problem 1036 四塔问题相关推荐

  1. 汉诺塔+汉诺四塔(C/C++)

    目录 汉诺塔 1  简介 2  代码思路 2.1  对于次数的理解 2.2  对于移动的理解 3  代码 4  加深理解 汉诺四塔 1  思路 2  代码 汉诺塔 1  简介 汉诺塔(Tower of ...

  2. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-933 汉诺四塔

    第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-933 汉诺四塔 目录 第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-933 汉诺四塔 前言 关于数学的疑问 算法训练 汉诺四塔 ...

  3. 四柱子汉诺塔—递归—递推

    三塔:递推式:d[n] = 2 * d[n-1] + 1 即把前n-1个盘子从A柱移到B柱,然后把A柱上剩的那一个盘子移动到C柱,最后把B柱上的那n-1个盘子移动到C柱上 四塔:递推式:f[n] = ...

  4. 三柱汉诺塔四柱汉诺塔

    汉诺塔问题_哔哩哔哩_bilibili 三柱汉诺塔,从整体来看,分为三部 1.先让n-1个盘先由a柱放在b柱 2.把第n个盘由a柱放在c柱 3.将这n-1个盘由b柱移动到c柱 而其中的递归过程就是直到 ...

  5. 暴力优化解法+哈希解法——2016年第七届蓝桥杯省赛b组第八题 四平方和

    Problem describe 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0 ...

  6. 【BZOJ】【1036】树的统计

    嗯这题是一道对树进行动态修改&查询的经典题目,可以拿来练习树链剖分~ 啊对于这种动态修改&查询的题目,我们最喜闻乐见的就是在一个序列上去做了,毕竟可以直接套各种数据结构模版啊,比如线段 ...

  7. HiHocoder 1036 : Trie图 AC自动机

    Trie图 先看一个问题:给一个很长很长的母串 长度为n,然后给m个小的模式串.求这m个模式串里边有多少个是母串的字串. 最先想到的是暴力O(n*m*len(m)) len(m)表示这m个模式串的平均 ...

  8. 奇怪的汉诺塔 Four Column Hanoi Tower

    奇怪的汉诺塔 题面 传送门 思路 首先考虑三个柱子的汉诺塔: 假设当前有 n n n个盘子: 先把前n-1个盘子从A柱移到B柱,然后把A柱上剩的那一个盘子移动到C柱最后把B柱上的那n-1个盘子移动到C ...

  9. 【YBT高效进阶】1基础算法/1逆推算法/2奇怪汉诺塔

    [YBT高效进阶]1基础算法/1逆推算法/2奇怪汉诺塔 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 汉诺塔问题,条件如下: 这里有 ...

  10. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

最新文章

  1. hsf 架构_HSF 服务
  2. 如何打造一个TB级微服务海量日志监控平台
  3. Excel函数公式 (日期函数)
  4. 有36个人,36块砖,每人搬了一次,正好搬完。 其中男每人每次搬4块,女每人每次搬3块,小孩两人每次搬一块。问 男、女、小孩各多少人?...
  5. 更新至Android Studio4.1后发现as打不开的解决方案
  6. SyntaxError: Non-UTF-8 code starting with '\xba' in file 错误的解决方法!!
  7. 揭开发家致富的2个途径
  8. Oracle基于时间点的恢复(转载)
  9. solr6.5的分词
  10. 大数据——Spark GraphX介绍
  11. 微信小程序商城模板平台分享
  12. Querydsl使用fetchCount()报错
  13. 转:如何在Ubuntu系统下安装使用LaTeX
  14. 电子商务的未来谁主宰?
  15. 当我跑步时我在想什么读后感
  16. 智汇华云 | ArSDN之分布式路由及浮动IP简介
  17. CIO烦恼之七:企业文化僵化,系统思想难以贯彻
  18. 关于华三HCL使用时,设备端口状态为down的解决
  19. 可达性分析算法与理解误区
  20. 2023-04-03 Linux中杀死进程kill和killall命令的区别,着重介绍killall

热门文章

  1. VS编译NPAPI:error C2065: “PCONTEXT”: 未声明的标识符
  2. OpenJDK8编译之后,缺少com.sun.tools.javac.Main怎么办
  3. 管理感悟:开会为什么坐到后面
  4. 为什么很少人学汇编_为什么那么多人学模具,成功的只有不到5%???
  5. ubuntu退出mysql sql语句_Ubuntu 16.04安装、卸载mysql及怎么使用SQL常用操作语句
  6. bat脚本 rar压缩文件 rar压缩文件带一层路径 带路径压缩
  7. android studio约束布局,在Android Android Studio的上下文菜单中添加约束布局障碍
  8. VIMrc 配置文件
  9. 005-统一沟通-部署-基础-环境作业
  10. Putty CentOS SSH 总是自动断开连接