今天的题超极棒。 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
假设有三个命名为x、y、z的塔座,在塔座x上插有n个直径大小各不相同、依小到大编号为1、2...n的圆盘,要求将x塔座上的n个圆盘移至z上,并仍按同样的顺序叠排,圆盘移动时应遵守下列规则: (1)每次只能移动一个圆盘; (2)圆盘可插在x、y和z中任何一个塔座上; (3)任何时刻都不能将一个较大的圆 ...
分类:
其他好文 时间:
2020-02-24 13:28:45
阅读次数:
149
分治与汉诺塔 分治算法 分治算法介绍 分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排 ...
分类:
其他好文 时间:
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
1. 一个应用场景 2. 概述 递归就是方法自己调用自己 递归需要遵守的重要规则 1. 执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 2. 方法的局部变量是独立的,不会相互影响;但如果方法中使用的是 引用类型变量 (比如数组),就会 共享 该引用类型的数据 3. 递归必须向退出递归的条件 ...
分类:
其他好文 时间:
2020-01-28 12:15:57
阅读次数:
61