摘要:
骨牌覆盖问题 骨牌,一种古老的玩具。今天我们要研究的是骨牌的覆盖问题: 我们有一个长条形的棋盘,然后用 1X2 的骨牌去覆盖整个棋盘,那么对于这个棋盘总共有多少种不同的覆盖方法? 2xN的棋盘 我们考虑在已经放置了部分骨牌(灰色)的情况下,下一步可以如何放置新的骨牌(蓝色): 最右边的一种情况是不可 阅读全文
摘要:
质数进阶 质数(英语:Prime number),又称素数,指在大于1的自然大于1的自然数中,除了1和此整数自 身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。 暴力枚举判断 根据素数的概念,即除了 1 和此整数自身外,无法被其他自然数整除的数 cin n flag = tru 阅读全文
摘要:
这两天花了点时间学习了一下汇编语言,用的是 王爽老师著的汇编语言(第三版),整个学习是基于8086/88 CPU 16 位微机,在此做一下总结,如有错误,欢迎指正。 一、寄存器 8086/88 CPU 中共有 14 个16位寄存器,AX, BX, CX, DX, SI, DI, SP, BP, IP 阅读全文
摘要:
启发式搜索 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。 在启发式搜索中,我们每次找到当前“最有希望是最短路径”的状态 阅读全文
摘要:
先来介绍一下八数码问题 游戏的棋盘被分割成3x3的区域,上面放着标记有1~8八个数字的方形棋子,剩下一个区域为空。 游戏过程中,只能移动棋子到相邻的空区域上。当小Ho将8个棋子都移动到如下图所示的位置时,游戏就结束了。 现在的问题在于如何判断初始状态能否到达目标状态? 为了方便,我们把它写成一维的字 阅读全文
摘要:
1、单行(single-line)--短注释://…… 单独行注释:在代码中单起一行注释, 注释前最好有一行空行,并与其后的代码具有一样的缩进层级。如果单行无法完成,则应采用块注释。注释格式:/* 注释内容 */行头注释:在代码行的开头进行注释。主要为了使该行代码失去意义。注释格式:// 注释内容行 阅读全文
摘要:
问题:给定的全排列,计算出它是第几个排列? 对于全排列,不清楚的可以参考全排列 方法:康托展开 对于一个长度为 n 的排列 num[1..n], 其序列号 X 为 写做伪代码为: 实现代码为: // 给定一个全排列, 计算它是第几个排列 #include <iostream> #include <a 阅读全文
摘要:
韩信点兵 问题:给定了n组除数m[i]和余数r[i],通过这n组(m[i],r[i])求解一个x,使得x mod m[i] = r[i] 解: 一开始就直接求解多个方程组的解,比较困难,所以我们从 n = 2 开始递推 已知: 所以存在两个数, k[1], k[2] 因为值相同,所以: 令 A = 阅读全文
摘要:
问题:求[L, R]中K ( 假设φ(n)表示1..n-1中与n互质的数的个数。对于[L,R]中的任意一个除K 以外的整数y,满足φ(K)≤φ(y)且φ(K)=φ(y)时,K<y ),K是[L,R]中φ(n)最小并且值也最小的数。 解:用欧拉函数求解 φ(n),一般被称为欧拉函数。其定义为:小于n的 阅读全文
摘要:
问题:求解 s1 + v1*t = s2 + v2*t - k*m (v1<v2) 已知:s1, s2, v1, v2, m 求解该式子的算法我们称为扩展欧几里德算法。 该算法分为两个部分: (1) 判定是否存在解 对于形如"Ax+By=C"的式子,其存在解的条件为C为A和B最大公约数的整数倍。 我 阅读全文