摘要:
If you want to concatenate assignment like thisint x, y, z;x = y = z = 15;The convention is to make the assignment operators return a reference to *this.11 Handle assignmnet to self in operator =You can easily assign an object to itself without knowing it// Example 1Foo *px, *py;px = py;//Example 2a 阅读全文
摘要:
Because such calls would never go to a more derived class than that of currently executing construtor or destructor. In other word, it would call the version of base class rather than that of derived classes. For example, if you have a base transaction class to log the buy and sell transactions, you 阅读全文
摘要:
题目输入: n1, n2, n3, n4 (1~13)输出: 若能得到运算结果为 24, 则输出一个对应的运算表达式如:输入: 11, 8, 3, 5输出: (11-8) * (3*5) = 24思路1. 假设不考虑括号, 4 个数, 每个数只能使用一次, 那就就对 4 个数全排列, 中间有3 个位置插入符号, 共四种符号, 共有 4!*4^3种表达式. 再加上括号, 一共 7680 种.2. 遍历所有变量, 包括运算符, 数字, 括号是一种解法. 首先从集合中任意取出两个数, 对他们进行四则运算(A+B, A-B, B-A...) 然后再放回去即的递归解法. 这种解法效率较低, 存在较多的冗 阅读全文
摘要:
1. 朴素 DFS 遍历效率太低, 即便是预先设定 9 个数放到数组再去 DFS, 同样并不高效2. 在生成一个可行解后, 随机删除一些数字, 删除的数字越多, 数独的难度就越大3. 正解二. 3.1假设已经有一个 3X3 的矩阵是排列好的, 具体数字先用字母代替. 将小矩阵放到数独正中间 3.2 通过行变换, 填充数独中间三行 3.3 通过列变换, 填充数独中间三列 3.4 还剩下 4 个小方块, 由相邻的矩阵变换可得 阅读全文
摘要:
题目1. 怎么用简单的计算机模型来描述这个问题 ?2. 怎么判断两个图像是否能相消3. 怎么求出相同图形之间的最短距离(转弯数最少)?4. 怎么确定目前处于死锁状态? 如何设计算法来解除死锁?分析1. 在经典最短路径算法中, 需要求出经过格子最少的路径, 而这里, 为了保证转弯数最少, 需要把路径问题的目标函数改成从一个点到另一个点最少的转弯数. 虽然算法的目标函数改了, 但是算法的框架仍然不变.2. 假设现在要解决图形 A 和图形 B 之间的最短路径问题4. 在练练看的最外层加上空白的一层格子5. 首先把图形 A(x1,y1) 加入到队列中, 然后扩展A可以直线到达的格子, 假设这些格子的集 阅读全文
摘要:
题目假设有两堆石头, 有两个玩家按照如下规则轮流取石头每个人每次可以从两堆石头中取出数量相等的石头, 或者仅从一堆石头中取出任意数量的石头最后把剩下的石头依次拿光的人取胜首先取石头的人能否赢得这个游戏分析1. 我们先定义先取者有必胜策略的局面为 "安全局面", 而先取者无必胜策略的局面为 "不安全局面"2. 根据枚举 (10,10) 范围内石头的可能组合, 发现不安全局面的局面有 , , ...3. 不安全局面的特点是 b = a + i, i = 1, 2, 3.., 若 a1, b1, ... an-1, bn-1 已经求得, 则定义 an 为未出现 阅读全文
摘要:
题目有 N 块石头河两个玩家 A 和 B. A 先将石头分成若干堆, 然后按照 BABABA... 的顺序轮流取石块, 能将剩下的石头依次取光的玩家获胜. 每次取石头时, 每个玩家只能取一堆的 m(m>=1) 个石头思路1. 依然举例子.当 N = 1 时, 输. N = 2 时, 可以分成 1, 1. 赢当 N = 3 时, 分成 1, 2. 输当 N = 4 时, 分成 2, 2, 赢当 N = 5 时, (1,1,3) (1,2,2) (2,3) 都是输总结1. 稳赢叫做安全局面. 能一步跳到安全局面的叫做不安全局面. 不安全局面都是稳输的2. 安全局面不能直接跳到安全局面, 即安 阅读全文
摘要:
题目N 个石头排成一行, 每块石头有固定的位置和编号, 两个玩家依次取石头, 每个玩家可以取其中的任一块石头, 或者相邻的两个石头. 石头在游戏过程中不能移位, 最后将剩下的石头依次取光的玩家获胜思路1. 从简单的特例除法讨论当石头的数目 N = 1,2 时, 先取者胜当石头的数目 N = 3 时, 中间一个, 先取者胜当石头的数目 N = 4 时, 取中间两个, 先取者胜可以发现规律假设 N <= i 时, 先取者胜.当 N(N=i+1) 为奇数时, 取中间一个, 否则取中间两个, 将石子堆成相等的两堆, 两堆的数目小于 i, 对于一堆先取的胜, 两堆就是后取的胜. 得出结论, 先取的 阅读全文
摘要:
题目有 n 个学生分别对 m 个见面会感兴趣, 为了满足所有学生的要求, HR 希望每个学生都能参加自己感兴趣的所有见面会思路1. 假设某一个同学同时对k个小组感兴趣, 那么这k个小组两两之间都要有一条边, 这样就转化成了最少着色问题. 图的最少着色问题至今没有有效解法, 可以使用dfs枚举, 时间复杂度很高2. 我们可以尝试对这个图进行K着色, 首先把K设置成1, 看看有没有适合的方案, 再逐渐把K提高. 当假设待求的图最少着色数远小于图的定点数时, 这个算法的复杂度远低于方法(1)扩展问题1. 假设有 N 个面试要同时进行, 他们的面试时间分别是 B[i], E[i]. 我们希望将这N个面 阅读全文
摘要:
题目电梯每次上升只停一次, 求问电梯停在哪一楼能够保证乘坐电梯的所有乘客爬楼层的层数之和最小思路假设电梯的层数是 m, 乘客人数是 n1. 枚举, 时间复杂度是 o(mn)2. 滚动解法. 先对 n 名乘客排序, nlogn 然后移动游标, 时间复杂度为 o(nlogn)假设电梯的层数是 n, 要去第 i 层的乘客数目为 tot[i]1. 假设在第 i 层停时, 有 X 人向上爬, Z 人不用爬, Y 人向下走, 需要走的步数之和为 F, 在这个前提下, 电梯在 i+1 层停靠. 那么 F' = F+X+Z-Y. X = X+Z, Y = Y-TOT[i+1]在这种数据结构下, 时间复 阅读全文