
算法与数据结构
文章平均质量分 73
cumt_wangxiang
一条在路上慢慢跑的Dog
展开
-
Poj487-3279
DescriptionBusinesses like to have memorable telephone numbers. One way to make a telephone number memorable is to have it spell a memorable word or phrase. For example, you can call the Universit原创 2016-06-11 20:36:21 · 366 阅读 · 0 评论 -
最大子段和
问题描述:给你搞定由n个整数(可能为负整数)组成的序列a1,a2,a3,......,an,求该序列的连续子段和的最大值。当所有整数均为负整数时定义其最大子段和为0。问题分析:解决该问题有多种方法,在此分别用如下方法解决:(1)穷举搜索法。(2)递归分治法。(3)动态规划法。代码如下:穷举搜索法public static int MaxSum(){int原创 2016-06-15 10:39:26 · 391 阅读 · 0 评论 -
BFS+优先队列解决单源最短路径问题
问题描述:在图中找到从某一源点到给定一点的最短路径。分析:解单源最短路径问题的优先队列分支限界法用一极小堆来存储活节点表,其优先级是结点所对应的当前路长。算法从图G的源顶点和空优先队列开始。根结点s被拓展后,它的3个儿子结点被依次插入堆中。此后,算法从堆中取出具有最小当前路长的结点作为当前拓展结点,并依次检查与当前拓展结点相邻的所有顶点。如果从当前拓展结点到顶点i到顶点j有边可达,且从原创 2016-06-14 16:10:54 · 4273 阅读 · 0 评论 -
贪心算法解决背包问题
背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包中时,可以选择物品i的一部分,而不一定要全部装入背包中,1此问题的形式化描述是,给定C>0,Wi>0,Vi>0,1问题分析:虽然背包问题与0-1背包问题极为相似,但背包问题可以用贪心算法求解,而0-1背包问题却不能用贪心算法求解。求解基本步骤:首先计算每种物品单位重量的价值vi/wi,然后依据贪心选择策略,将尽可原创 2016-06-14 15:20:15 · 1406 阅读 · 0 评论 -
DP最长公共子序列
问题描述:给定两个序列X={x1,x2,x3,.....,xn}和Y={y1,y2,y3,....,yn},找出X和Y的最长公共子序列。原创 2016-06-13 19:49:46 · 248 阅读 · 0 评论 -
DP 0-1背包问题
问题描述:给定n种物品和一背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。问:该如何选择装入背包的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入背包中多次,也不能只装入部分的物品i。因此该问题称为0-1背包问题。原创 2016-06-13 22:16:35 · 571 阅读 · 0 评论 -
队列的应用
问题描述:实现银行排队叫号服务问题。排队叫号软件的具体操作流程:(1)顾客取服务序号(2)服务员工呼叫顾客1.设计思路:在银行排队叫号软件中,设计两个类,一个是排队机类QueueMachine,该类根据银行工作的开始时间和结束时间创建一个队列,当顾客按Enter键时,为顾客获得一个服务号,并将顾客服务加入队列;另一个是服务窗口类ServiceWindow,服务窗口的职能是为原创 2016-06-14 10:30:55 · 452 阅读 · 0 评论 -
贪心,最优装载问题
问题描述:有一批集装箱要装上一艘载重量为c的轮船,其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。分析:可用贪心算法求解,采用重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解。具体算法描述如下:public static float loading(float c,float[]w,int[]x){int n=w原创 2016-06-14 15:18:31 · 1109 阅读 · 0 评论 -
矩阵连乘问题 DP
问题描述:给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,i=1,2,....,n-1.考查这n个矩阵的连乘积A1A2A3....An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依次次序反复调用2个矩阵相乘的标准法计算出矩阵连乘积。问原创 2016-06-13 15:25:26 · 865 阅读 · 0 评论 -
约瑟夫环问题
问题描述:据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第一个人开始报数,每报到第三个人,该人就必须自杀,然后由下一个人重新报数,直到所有的人都自杀身亡为止。然而Josephus和他的朋友并不想遵从,他将朋友与自己安排在第16原创 2016-06-13 12:17:31 · 627 阅读 · 0 评论 -
DFS解决n皇后问题
问题描述在nxn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n皇后问题等价于在nxn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一类或同一斜线上。算法设计用n元组x[1:n]表示n皇后问题的解。其中x[i]表示皇后i放在棋盘的第i行,x[i]列。由于不允许将2个皇后放在同一列,所以解向量中的x[i]互不相同。2原创 2016-06-13 10:58:37 · 714 阅读 · 0 评论 -
POJ1416 DFS+剪枝
[题目大意]: 公司现在要发明一种新的碎纸机,要求新的碎纸机能够把纸条上的数字切成最接近而不超过target值。比如,target的值是50,而纸条上的数字是12346,应该把数字切成四部分,分别是1、2、34、6。因为这样所得到的和43 (= 1 + 2 + 34 + 6) 是所有可能中最接近而不超过50的。(比如1, 23, 4, 和6 就不可以,因为它们的和不如43接近50,而1原创 2016-06-12 23:19:56 · 342 阅读 · 0 评论 -
Java高精度
DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many co原创 2016-06-11 17:34:32 · 341 阅读 · 0 评论 -
堆栈解决迷宫搜索问题
问题描述:迷宫(maze)是一个矩形区域,它有一个入口和一个出口,入口位于迷宫的左上角,出口位于迷宫的右下角,在迷宫的内部包含不能穿越的墙和障碍物。迷宫路径搜索问题时寻找一条从入口到出口的路径,该路径是由一组位置组成的,每个位置上都设有障碍,且每个位置(第一个除外)都是前一个位置的东、南、西或北的邻居。基本思路:从迷宫的入口出发,沿正东方向顺时针对当前位置相邻的东、南、西、北四个位置依原创 2016-06-14 20:23:47 · 925 阅读 · 0 评论