算法

28 条原话摘录。? 是还没答的问题。

←→ 切主题 · J/K 选择 · L 胶片时间线

格雷码形成一个环,没有开头结尾,可从任何地方开始算法异或一个数字,像把格雷码序列环上的指针移到它上面算法整数 >>1 把高位错到低位,异或结果只取决于原最高位算法格雷码逆推可以一路递推,类似于差分算法核心转换链:模拟 → 杨辉三角 → 组合数 → 拆模数 → Lucas算法模 10 不是质数,所以必须拆成 mod 2 和 mod 5算法3463 看上去还是模拟题,结果一写就超时算法背包 DP 本质是在维护多项式系数,可进一步转成多项式乘法用 FFT/NTT算法二维 DP 前期未知状态太多,只能先从小的集合递推算法一维与二维写法思路刚好是相反的,一个从小推大,一个大中查小算法减法在这里意味着已经选中该 num,背包容量相应减小算法回溯法枚举所有子集的分支数是 O(2ⁿ),看着像两层循环其实不是算法D 算法的作用大致可以描述为阻尼算法I 算法像滚雪球一样越滚越大,用来消除稳态误差算法调节 D 算法,使 P 算法的作用减弱算法接受率随温度下降,好像分子随机运动也随之减弱算法真实数据充满锯齿并不光滑,用模拟退火未尝不是好办法算法哈希表的原理就是抓住唯一特性:值即 key算法定步长梯度下降能估极值点大概位置,可判断算法正确性算法记忆化搜索把 memo 写在 dfs 里,向下搜索时先查它算法取 max 以避免负下标,相当于省下条件语句算法找到满足精度 1e-5 的最小 n = 179,加个判断就能防超时算法递归只是运行时替我们维护的调用栈,所以能用 step / pc 手工把递归写成迭代算法BFS 队列应写进函数内部,每发现一块陆地新建一个,而不是当共享队列参数传入算法能跑过测试的代码其实还是 DFS 风格:先找邻接点入队,再出队递归算法旧代码像挨个点名寻找共犯,要队列里的第一个人供出同伙,新同伙排到最后算法改后代码像小丑抛球,球在空中一直飞,越抛越多,然后又依次抛出算法BFS 只是标记整块陆地的手段,因此仍需要对整个地图遍历算法

胶片时间线 · 四种分辨率 · 红笔对照