摘要:
题目有 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]在这种数据结构下, 时间复 阅读全文
摘要:
题目给出几条线段, 求解这几条线段把给定平面切成的份数思路1. 枚举 3 条直线的情况, 发现有规律可循两条直线, 一个交点 -> 空间分成 4 份三条直线, 两个交点 -> 空间分成 6 份三条直线, 三个交点 -> 空间分成 7 份即, 份数= 直线数+交点数+12. 题目转化成求解直线的交点数假设直线在左边的从上到下的顺序是 a,b,c, 在右边从上到下是 c,b,aa,0 b,1, c,2那么右边就变成了, 2,1,0求其逆序数就是结果 3 阅读全文
摘要:
题目1. 所有的 ID 都出现 2 次, 只有一个例外, 找到那个例外的 ID2. 所有的 ID 都出现两次, 只有两个例外, 找出例外的那两个总计1. 剑指 offer 上有这两道题的解法, 不过那时并没有讨论两个例外ID相同的情况2. 当已知例外的 ID 相同时, 我们需要更多的先验知识, 原始的所有 ID. 然后使用除法或者减法.3. 当不确定例外的 ID 是否相同时, 我们可以先做一步加法, 求得 x+y = a, 还需要一个式子. 这个式子可以使 x*y, 或者 x^2+y^2 阅读全文
摘要:
题目书店搞促销, 同时购买多卷书时, 有机会享受优惠2本优惠 5%, 3本 10%, 4 本 20% 5 本 25%设计算法, 求解购买一本书的最低价格分析1. 第一个感觉是一次购买的越多省钱越多, 即贪心的思想, 但这样的思路对不对呢? 考虑下面一个案例购买两本卷一, 两本卷二, 两本卷三, 一本卷四卷五假如按照贪心的思路去求解, 共会花费 51.6 元, 而假如四本四本的买, 仅需 51.2 元, 所以贪心法不一定总是最优解2. 动规解法F(x1, x2, x3, x4, x5) 表示购买 x1 本卷一, x2... 所需的最少钱数稍加分析, 可以得出, F(x2, x1, x3, x4, 阅读全文