
学校考试
不想做红队的安服仔不是好安服
五年后,我连动态规划是什么都不知道,照样活得很好
展开
-
假的哈夫曼C++版--学校考试第10题
问题:1、使用贪心算法解决如下问题问题:已知字符出现的频率,现要求根据字符出现的频率求出该字符对应的哈夫曼编码。举例:输入字符频率表 a b c d e 45 13 12 16 9输出:a:0 b:110 c:1110 d:10 e:1111这真的就是一个假的哈夫曼树,具体的东西我也不想写了,这就是个假的!!!它是将一个哈弗曼树的每一步排序都...原创 2019-12-25 19:45:02 · 154 阅读 · 0 评论 -
分治法-整数划分(java)
问题:将正整数n表示成一系列正整数之和n=n1+n2+…+nk(其中,n1>=n2>=…>=nk>=1,k>=1),求任意正整数n的划分数(n<10)。例如:6;5 + 1;4 + 2, 4 + 1 + 1;3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1;2 + 2 +2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 +...原创 2019-12-14 16:32:08 · 906 阅读 · 2 评论 -
学校期末考试版-回溯法-旅行商问题
使用回溯法解决如下问题问题:某售货员要到若干城市去推销商品,已知各城市之间的路程。他要选定一条从驻地出发,经过每个城市一次,最后回到驻地的路线,使总的路程(或总旅费)最小。城市数量小于5个。用回溯法解决问题时,首先要考虑如下三个问题。(1)定义合适的解空间因为解空间的大小对搜索效率有很大的影响,因此使用回溯法首先要定义合适的解空间,确定解空间包括解的组织形式和显约束。解的组织形式:解的...原创 2019-12-13 22:58:47 · 894 阅读 · 0 评论 -
学校期末考试版-贪心算法(最优转载问题)java
问题:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为wi。最优装载问题要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。举例:假设c=20,w={5,6,7,8,9},则输出 5 6 7算法设计贪心算法:(1)贪心策略:首先要确定贪心策略,选择当前看上去最好的一个方案。例如,挑选苹果,如果你认为大的是最好的,那你每次都从苹果堆中拿一个最大的,作为局部最优解,...原创 2019-12-13 17:27:03 · 833 阅读 · 1 评论 -
学校考试版-矩阵连乘
问题:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2,…,n-1,求矩阵相乘至少需要多少次数乘?举例:A1 10100,A2 1005,A3 550,则A1A2*A3至少需要7500次数乘。算法设计采用自底向上的方法求最优解,对于每一个小规模的子问题都求最优解,并记录最优策略(加括号的位置),具体算法设计如下。(1)确定合适的数据结构采用一维数组p[]来记录...原创 2019-12-13 16:03:32 · 181 阅读 · 1 评论 -
学校期末考试版-最短路径
声明:此版本是用于自己期末考试的,嘻嘻嘻,代码功能与正式版相比没有了所经过的最短路径。算法设计:Dijkstra算法是解决单源最短路径问题的贪心算法,它先求出长度最短的一条路径,再参照该最短路径求出长度次短的一条路径,直到求出从源点到其他各顶点的最短路径。Dijkstra算法的基本思想是首先假定源点为u,顶点集合V被划分为两部分:集合V和V-S。初始时S中仅含有源点为u,其中S中的顶点到源点...原创 2019-12-11 23:16:29 · 199 阅读 · 0 评论 -
详解分治法-快速排序-java语言实现
分治法-快速排序-java语言实现问题描述:输入一个数字N后,输入N个数字,将N个数字排序后输出.输入:81 6 5 2 3 8 7 9输出:1 2 3 5 6 7 8 9原创 2019-11-27 11:13:51 · 2203 阅读 · 2 评论 -
超详解动态规划之0-1背包问题,java语言实现
超详解动态规划之0-1背包问题问题:问题:有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 w[i],价值是 p[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。举例:假设v=20,w={5,6,3,7,8},p={6,7,4,8,9},则最大价值为23逆向构造最优解输出哪些物品放入了背包输入5205 6 3 7 86 7 4 8...原创 2019-11-28 17:21:16 · 799 阅读 · 0 评论 -
学校期末考试版-动态规划最长公共子序列
声明:该版本与正式版相比少了最长公共子序列的来源,即只有公共子序列的长度算法设计最长公共子序列问题满足动态规划的最优子结构性质,可以自底向上逐步得到最优解(1)确定合适的数据结构采用二维数组c[][]来记录最长公共子序列的长度。(2)初始化输入两个字符串s1,s2,初始化c[][]第一行第一列元素为0.(3)循环阶段①.i=1;s1[0]与s2[j-1]比较,j=1,2,3,…,l...原创 2019-12-12 16:30:56 · 187 阅读 · 0 评论