递归与分治(divide and conquer)
将难以解决的大问题分割为规模较小的相同问题,以便各个击破,分而治之。
Prime me
Nobody can defeat me unless I don't want to win.
展开
-
算法:正整数划分问题
将一个正整数n表示成一系列正整数的和,如:N=n1+n2+…+nk (其中n1≥n2≥…≥nk≥1, k≥1)正整数n的一个这种表示成为正整数n的一个划分。现在给出一个正整数n(80≥n≥1),求n的不同划分一共有多少种。Input输入数据包含多组测试数据,每组测试数据只有一行,仅包含一个正整数n。Output对每组输入数据,输出一行,输出n的不同划分的种类数。input:16output:111我们定义f(n,m),为正整数最大加数x为不大于m的划分,由x=m和x=m-.原创 2021-12-31 20:08:20 · 830 阅读 · 0 评论 -
算法实验4:棋盘覆盖
Description在一个2k x 2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。Inputk,dr,dc。k定义如前,dr,dc分别表示特殊方格所在的行号和列号 1= < k < =Output按照左上,右上,左下,右下的顺序用分治法求解。特殊方格标0,其他位置按上述顺序依次标记。input2 .原创 2021-12-31 11:52:18 · 364 阅读 · 0 评论 -
畅通工程&&并查集板子
畅通工程题目:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。注意:两个城市之间可以有多原创 2021-03-26 19:11:10 · 65 阅读 · 0 评论 -
算法:汉诺塔
算法:汉诺塔题目Description汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬了 聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?Input输入金片的个数n。这里原创 2021-03-22 21:39:37 · 113 阅读 · 0 评论 -
Permutation Transformation
Permutation Transformation题目:A permutation — is a sequence of length n integers from 1 to n, in which all the numbers occur exactly once. For example, [1], [3,5,2,1,4], [1,3,2] — permutations, and [2,3,2], [4,3,1], [0] — no.``Polycarp was recently gif原创 2021-03-15 20:45:39 · 471 阅读 · 0 评论