前言: 分治法是一种算法设计思想,所谓分治,意为分而治之,是指将一个难以直接解决的大问题,递归的分割成一些规模的较小的问题,以便逐个解决。采用分治法设计的算法通常用到递归算法来实现,故标题为递归分治。 归并排序算法 归并就是将两个或两个以上的有序表合并成一个新的有序表。归并排序就是将无序的待排序的序 ...
分类:
编程语言 时间:
2016-09-26 21:29:20
阅读次数:
157
P1965 转圈游戏 P1965 转圈游戏 P1965 转圈游戏 625通过 1.8K提交 题目提供者该用户不存在 标签数论(数学相关)递归/分治2013NOIp提高组 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 洛谷有缺陷 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏 ...
分类:
其他好文 时间:
2016-08-04 23:05:29
阅读次数:
365
并归排序是一种典型的递归分治策略。并归排序实际上非常简单,简直比冒泡儿还简单。 只需要简单的两部:对待排序的拆分,分完之后并归。然后这个过程逐级向下。 其实我感觉举个例子之后,整个过程都明白了,再写代码难度也不是很大 终于觉得并归是最简单的了 分的时候尽量对称分,然后在逐级合并的时候其实是有排序作用... ...
分类:
编程语言 时间:
2016-06-19 11:27:14
阅读次数:
205
// std::sort 学习:一种递归分治方法今天看了看 stl 的 std::sort 的代码,众所周知,这个函数是在快速排序递归太深的时候使用堆排序防止过度退化,但是今天说的不是这个。我们只看快速排序的部分。我们一般实现快速排序大概是这样的(本王随意写了个用下标当参数的排序函数,领会意思即可)... ...
分类:
其他好文 时间:
2016-05-31 00:39:47
阅读次数:
253
直接上代码: 主程序: 之后就是各种算法的代码了,在调用相应的算法函数前记得先在main函数中声明哦。 首先冒泡排序,这个比较简单,就像冒泡一样(可以从小到大,也可以从大到小),大的升上去,小的降下来。我这里用的是小的降下来,如下: 然后是快速排序法,这个比较重要,采用的递归分治的思想,但是写起来稍 ...
分类:
编程语言 时间:
2016-04-19 18:58:55
阅读次数:
225
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:题目相对简单,有两个思路,一个是遍历两个链表的公共长度,按值的大小把各个节点连接起来,最后把较长链表的剩余部分追加到最后。第二个思路,这个类似于自然合并排序,可以使用递归分治的思想来解决问题,还
分类:
编程语言 时间:
2016-03-19 16:23:12
阅读次数:
168
ACM知识点分类 (红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道) 第一类:基础算法 (1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟 (2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp (3) 搜索:dfs,bfs,记忆化搜索
分类:
其他好文 时间:
2016-02-26 18:37:06
阅读次数:
149
在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖。四各L型骨牌如下图1图1棋盘中的特殊方格如图2图2 实现的基本原理是将2^k * 2^k的棋盘分成四块2^(k - 1) * 2^(k - 1)的子棋盘,特殊方格一定在其...
分类:
其他好文 时间:
2016-01-11 23:47:46
阅读次数:
207
在一个2^k*2^k个方格组成的棋盘中,若恰有一个方格与其它方格不同,则称该方格为一特殊方格,称该棋盘为一特殊棋盘。显然特殊方格在棋盘上出现的位置有4^k种情形。因而对任何k>=0,有4^k种不同的特殊棋盘。下图所示的特殊棋盘为k=2时16个特殊棋盘中的一个。在棋盘覆盖问题中..
分类:
其他好文 时间:
2015-10-19 12:52:20
阅读次数:
145
ACM知识点分类(红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道)第一类:基础算法(1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟(2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp(3) 搜索:dfs,bfs,记忆化搜索,...
分类:
其他好文 时间:
2015-08-17 23:20:52
阅读次数:
285