前言 上一节通过两个经理案例初步认识动态规划,今天这一节主要讲动态规划的理论知识。 “一个模型三个特征”理论讲解 实际上,动态规划作为一个非常成熟的算法思想,这部分理论总结为“一个模型三个特征”。 一个模型 一个模型指动态规划适合解决的问题模型。这个模型定义为“多阶段决策最优解模型”。 一般是用动态 ...
分类:
编程语言 时间:
2020-07-27 15:39:05
阅读次数:
71
题意: 给定一个序列ai,问序列中其他数中有多少个数是它的约数 思路: 暴力求法会超时。O(n²) 最优解:先储存每个数的个数,遍历x,每个x的倍数加上x的个数 注:最后每个数的答案要-1(减去本身) Code: #pragma GCC optimize(3) #pragma GCC optimiz ...
动态规划 零钱兑换 II 参考书目:《程序员代码面试指南:IT名企算法与数据结构题目最优解》 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: ...
分类:
其他好文 时间:
2020-07-20 23:02:16
阅读次数:
148
题目大意: 求一个给定的圆 \((x^2+y^2=r^2)\),在圆周上有多少个点的坐标是整数。 正文: 声明: 此方法概括(转)自 3b1b 的视频。 如果我们直接照着题目给出的勾股定理枚举,最优解的时间复杂度似乎就只有 \(O(r)\),可 \(r\) 达到二十亿,这方法觉得行不通。 数学里比较 ...
分类:
其他好文 时间:
2020-07-19 23:40:00
阅读次数:
59
可以选俩一样的数,但自己异或自己结果是0,不是最优解 预备知识,啥是异或 暴力做法就是两层for循环枚举所有可能 暴力的思路就是 1:首先选定一个Ai(1 <= i <= n) 2:在A1 ~ An中选择一个数Aj,使得Ai ^ Aj的值最大 突破点在第2步 首先Ai一定小于等于31位,也就是0 < ...
分类:
其他好文 时间:
2020-07-13 09:15:13
阅读次数:
57
初始化的细节问题 我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。 有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背 包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。 如果是第一种问法,要求恰好装满背包,那么在初始化时除了F[0]为0,其 它F[1. ...
题目 P2858 [USACO06FEB]Treats for the Cows G/S 思路 \(dp\)。 \(dp[i][j]\) 表示现在已经取了 \(i\) 个并且有 \(j\) 个是从左边取得的最优解。 状态转移方程: \(f[i][j] = max(f[i - 1][j] + a[n ...
分类:
其他好文 时间:
2020-07-12 17:04:13
阅读次数:
74
0. 前言 通常神经网络的问题: 参数如何选择 何时停止训练 局部最优解 1. 回声网络ESN 具有以下特点: 大且稀疏生物连接,RNN被当做一个动态水库 动态水库可以由输入或/和输出的反馈激活 水库的连接权值不会被训练改变? 只有水库的输出单元的权值随训练改变,因此训练是一个线性回归任务 假设有E ...
分类:
其他好文 时间:
2020-07-11 17:03:53
阅读次数:
198
动态规划类问题主要分为两大类: 1.求最优解(典型的背包问题) 2.计数(统计方案) 以上两类都存在递推性质。 第一类的递推称为最优子结构 -- 当前问题的最优解取决于子问题的最优解。 当前问题的方案数取决于子问题的方案数时,也可以用动态规划解决。 第二类例子: 机器人走方格(leetcode63. ...
分类:
其他好文 时间:
2020-07-06 09:13:38
阅读次数:
54
动态规划问题的一般形式就是求最值。最显著的特点是最优子结构和重叠子问题。最优子结构就是子问题的最优解,可以从子问题的最优结果推出更大规模问题的最优结果,可以用状态转移方程描述问题。重叠子问题可以通过创建备忘录dp[]避免重复计算。 零钱兑换的解题步骤: 1)先确定状态,也就是原问题和子问题中变化的变 ...
分类:
其他好文 时间:
2020-07-05 23:27:16
阅读次数:
108