poj链接# 题意四塔汉诺塔,A,B,C,D四座塔,将所有盘子从A移动到D的最少步数 # 题解1) 我们先考虑三个塔的汉诺塔问题,最优秀方案:必然是先挪走n-1个圆盘,然后再挪走圆盘N, 因此可以得出递推方程也就是 d[i]=d[i-1]*2+1; 之所以要乘以2,是因为第一次挪到第二个塔,然后还要 ...
分类:
其他好文 时间:
2020-03-04 23:12:33
阅读次数:
87
汉诺塔: 移动规则: 分析: move函数是一个递归函数,功能是:把x上n个圆盘移动到z上 代码: #include <stdio.h> #include <stdlib.h> // 汉诺塔递归 void main() { int i,n; printf("请指定有几层:\n"); scanf("% ...
分类:
其他好文 时间:
2020-03-04 22:55:57
阅读次数:
82
今天的题超极棒。 T1 汉诺塔问题。 我们考虑把汉诺塔想象成一颗搜索树。 然后在上面找到当前的某一步就相当于递归到最底层。 然后中间判一下合不合法,如果走右儿子就加上左边的贡献就行了。 大概是个noip题。。。 T2 设函数$next(n,k,s)$为大于等于$n$的$k$进制数中,各个位和为$s$ ...
分类:
其他好文 时间:
2020-03-03 22:42:37
阅读次数:
92
传送门:http://poj.org/problem?id=1958 汉诺塔:https://www.cnblogs.com/antineutrino/p/3334540.html 问题引入:这个在标准的三塔问题上又加了一维,我们先考虑三个塔是怎么计算的?可以具体地分成三个步骤: 1.假设A塔上有n ...
分类:
其他好文 时间:
2020-03-01 12:42:22
阅读次数:
63
一开始看见通过了0.4+,以为是送分题,结果我错了。 花了好长时间看博客没搞懂怎么非递归实现(菜……)。 后面看了 https://blog.csdn.net/computerme/article/details/18080511的算法和https://zhuanlan.zhihu.com/p/36 ...
分类:
其他好文 时间:
2020-03-01 12:29:58
阅读次数:
150
分治与汉诺塔 分治算法 分治算法介绍 分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排 ...
分类:
其他好文 时间:
2020-02-20 10:12:53
阅读次数:
62
汉诺塔问题,是心理学实验研究常用的任务之一。当然我们是学计算机的,因此我们尝试用计算机去求解它。 ...
分类:
编程语言 时间:
2020-02-19 13:29:50
阅读次数:
78
汉诺塔问题(Hanoi):古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步 ...
分类:
其他好文 时间:
2020-02-16 14:37:09
阅读次数:
61
https://ac.nowcoder.com/acm/contest/3004/I 题意:输出汉诺塔移动过程中每一种移动的次数和移动总数。 如下A->B:XXA->C:XXB->A:XXB->C:XXC->A:XXC->B:XXSUM:XX 解法:记忆化搜索,当前状态的可以由上一状态得到。 #in ...
分类:
其他好文 时间:
2020-02-11 09:34:23
阅读次数:
82
二分查找:有序数组按照二分方式来查找数据 递归方法: //递归方式: int mid = l + (r-l)/2;//中间 if(l==r) return -1;//没有找到的情况 if(finddata==a[mid]) return mid; if(finddata>a[mid]) return ...
分类:
编程语言 时间:
2020-02-09 15:02:39
阅读次数:
67