摘要:
https://www.jianshu.com/p/8284a4f08cfd 《尚书》大舜帝在禅让帝位给大禹的时候告诫大禹,“人心惟危,道心惟微,惟精惟一,允执厥中。” 这里人心的“危”,指的是那些让人类有不好的感觉的所有经历,也就是说这个“人心惟危”指的是人类“趋利避害”的本能。“趋利避害”这种本 阅读全文
摘要:
整齐打印 算法导论3rd - 15.4 [toc] ## 问题描述 考虑在一个打印机上整齐地打印一段文章的问题。输入的正文是n个长度分别为L1、L2、……、Ln(以字符个数度量)的单词构成的序列。我们希望将这个段落在一些行上整齐地打印出来,每行至多M个字符。“整齐度”的标准如下:如果某一行包含从i到 阅读全文
摘要:
双调欧几里德旅行商问题 [toc] 算法导论3rd - 15.3 ## 问题描述 平面上n个点,确定一条连接各点的最短闭合旅程。这个解的一般形式为NP的(在多项式时间内可以求出) J.L. Bentley 建议通过只考虑双调旅程(bitonictour)来简化问题,这种旅程即为从最左点开始,严格地从 阅读全文
摘要:
最优二叉搜索树 [toc] ## 问题描述 最优二叉搜索树(Optimal Binary Search Tree,Optimal BST)问题,形式化定义:给定一个n个不同关键字的已排序的序列K=(k1 和 ,分别为左右子树。 所以问题转化为了递归地求解连续节点的根节点问题,假设函数f为期望代价: 阅读全文
摘要:
最长公共子序列 [toc] ## 问题描述 最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列 ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。 最长公共子序列问题是一个经典的计算机科学 阅读全文
摘要:
最长回文子序列 算法导论3rd - 15.2 ## 问题描述 回文:palindrome,是正序和逆序完全相同的非空字符串 一个字符串有许多子序列,可以通过删除某些字符而变成回文字符串,字符串“cabbeaf”,删掉‘c’、'e'、‘f’后剩下的子串“abba”就是回文字符串,也是其中最长的回文子序 阅读全文
摘要:
摸牌博弈 ```cpp // 摸牌博弈 // 一维排列的卡牌,其上有不同的数字,两个对手A和B依次从中摸牌 // 卡牌及顺序均对两人可见 // 每次只能从最左或最右摸牌 // 最终摸到的卡牌数字之和最大者获胜 // 两个人都绝顶聪明(两人都会选择对自己有利对对手不利的牌) #include #inc 阅读全文
摘要:
钢条切割 [toc] ## 问题描述 Serling公司购买长钢条,将其切割为短钢条出售。假设切割工序没有成本,不同长度的钢条的售价如下: | length | 1 | 2 | 3 | 4| 5|6|7|8|9|10| | - | - | - | - | - | - | - | - | - | - 阅读全文
摘要:
矩阵链相乘顺序 [toc] ## 问题描述 A1,A2,..,An 表示n个矩阵的序列,其中Ai为$P_{i−1}×P_i$阶矩阵,i=1,2,...,n。 向量P=表示矩阵链的输入,其中P0是A1的行数,P1是A1的列数,P1是A2的行数,以此类推。 计算这个矩阵需要做n−1次两个矩阵的相乘运算, 阅读全文
摘要:
汉诺塔 ```cpp #include #include #define N 5 void solve(); void move(char a, char b, char c, int num); void print_hanoi(); int main(int argc, char** argv) 阅读全文
摘要:
水仙花数 一个三位数,各位数分别是 abc,则满足如下条件的数称为水仙花数: $$ abc = a^3 + b^3 + c^3 $$ 比如: $$ 153 = 1^3 + 5^3 + 3^3 $$ 水仙花总数为153,370,371,407。 精确地说,3位数的三次幂数就叫做水仙数。数较多的还有其他 阅读全文