2019年12月16日

算法第五章作业

摘要: 你对回溯算法的理解 回溯算法是一种算法思想,递归是具体的代码结构 回溯算法可以是树结构的思维过程,构建问题的解空间树,在其解空间树中,从根节点出发,进行深度优先搜索。在搜索过程中,对解空间树的每个结点进行判断,判断该结点是否包含问题的解,若肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结 阅读全文

posted @ 2019-12-16 16:47 我的昵称里必须得有mt 阅读(106) 评论(0) 推荐(0) 编辑

宽搜&数据压缩-胜利大逃亡(续)有详细注释

摘要: Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每 阅读全文

posted @ 2019-12-16 16:28 我的昵称里必须得有mt 阅读(154) 评论(0) 推荐(0) 编辑

并查集&树-Is It A Tree?带详细注释

摘要: A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between 阅读全文

posted @ 2019-12-16 16:26 我的昵称里必须得有mt 阅读(182) 评论(0) 推荐(0) 编辑

字典树-Phone List及清空字典树(避免Memory Limit Exceeded)

摘要: Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue liste 阅读全文

posted @ 2019-12-16 16:24 我的昵称里必须得有mt 阅读(194) 评论(0) 推荐(0) 编辑

2019年12月15日

动态规划的设计思想与实例(最大子段和、最长公共子序列、0-1背包、编辑距离)

摘要: 动态规划算法与分治法类似,其基本思想是将总问题分解成若干个子问题,先求解子问题,再结合这些子问题的解得到原问题的解。与分治法不同的是,动态规划求解的问题经分解得到的子问题往往不是相互独立的。 基本思想: 将总问题分解成多个子问题(子问题也可以继续分解,直到无法分解),计算子问题,用一个表保存已解决的 阅读全文

posted @ 2019-12-15 17:26 我的昵称里必须得有mt 阅读(263) 评论(0) 推荐(0) 编辑

2019年11月20日

贪心算法-删数问题

摘要: 分析程序存储问题。内容包括: 实践题目 问题描述 算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质) 算法时间及空间复杂度分析(要有分析过程) 心得体会(对本次实践收获及疑惑进行总结) 4-2 删数问题 (110 分) 给定n位正整数a,去掉其中任意k≤n 个 阅读全文

posted @ 2019-11-20 00:48 我的昵称里必须得有mt 阅读(648) 评论(0) 推荐(0) 编辑

2019年10月21日

动态规划-编辑距离

摘要: 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的字符串A和字符串B,计算其编 阅读全文

posted @ 2019-10-21 20:24 我的昵称里必须得有mt 阅读(131) 评论(0) 推荐(0) 编辑

动态规划-最低通行费

摘要: 动态规划 我认为动态规划其实就是总问题的最优解依赖于其子问题的最优解,给出初始的最小子问题的答案后就可以一层一层的得出总问题的解。 作业题目的状态转移方程: 1 dp[i] = max(dp[j]+1, dp[i]); 2 if(dp[i][k]+dp[k][j]<dp[i][j])dp[i][j] 阅读全文

posted @ 2019-10-21 13:03 我的昵称里必须得有mt 阅读(607) 评论(0) 推荐(0) 编辑

2019年10月16日

分治法的设计思想与实例(二分,合并,快排)

摘要: 分治法的基本思想是将一个规模为n的问题分割成k个规模较小的子问题,这些子问题相互独立切与原问题相同。递归的解这些子问题,然后将各子问题的解合并得到原问题的解。 它的一般算法设计模式如下: divide(n) { if(fabs(n)<=n0)return solve(n); a1=divide(n1 阅读全文

posted @ 2019-10-16 21:46 我的昵称里必须得有mt 阅读(598) 评论(0) 推荐(0) 编辑

2019年9月23日

两个有序序列的中位数(二分)

摘要: #include<iostream> using namespace std; int a[100000],b[100000]; int search(int,int,int,int); int main() { int n,i; while(cin>>n) { for(i=0;i<n;i++) c 阅读全文

posted @ 2019-09-23 21:22 我的昵称里必须得有mt 阅读(745) 评论(0) 推荐(0) 编辑

导航