算法笔记
bluespacezero
这个作者很懒,什么都没留下…
展开
-
三个水桶等分8升水的Java语言求解
题目:有三个容积分别是8升、5升和3升的水桶,其中容积为8升的水桶中有8升水,其它两个水桶是空的。三个水桶都没有刻度,问如何在不借助其它工具的情况下只使用这三个桶把8升水等分。思路:把某一时刻三个水桶的水量称之为一个状态,则初始状态为{8, 0, 0},结束状态为{4, 4, 0}。可以使用穷举法,从初始状态开始,根据状态变化的可能性(引起状态变化的操作)遍历所有可能的状态,每当找到一个从初始...原创 2018-03-08 10:37:50 · 2238 阅读 · 1 评论 -
匈牙利算法的Java语言实现
匈牙利算法的一个重要概念是增广路径,具体思路是对于图的每个顶点都寻找其增广路径,然后将其加入匹配顶点当中,而对于每个顶点A寻找增广路径的过程中,如果另一个顶点B和顶点A有连接且在此轮循环中没有被访问过,则进行下一步处理:如果顶点B没有匹配的顶点或者虽然有匹配的顶点但是能找出另一个匹配的顶点C而把当前匹配的顶点让给顶点A,则把顶点A和顶点C匹配,而顶点B也在递归的过程中更改了匹配顶点,如此下去。关于匈原创 2018-03-08 19:11:50 · 3911 阅读 · 0 评论 -
KM算法解决指派(匹配)问题的Java语言实现
KM算法是一个解决最大最小权匹配的经典算法。能解决的问题比如分配几个不同的工人完成不同的工作,求解怎样使得工厂的经济效益最高,建图就是每个工人完成每个工作对应的经济效益。还有一些建图比较复杂的问题,比如poj3686:有n个订单m个车间,每个车间均可以单独完成任何一个订单;每个车间完成不同订单的时间是不同的;不会出现两个车间完成同一个订单的情况;给出每个订单在某个车间完成所用的时间;求解订单完成的最原创 2018-03-09 09:35:44 · 3720 阅读 · 1 评论 -
爱因斯坦的思考题Java语言求解
题目是这样的,有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物。没有任意两个人的任意属性值是相同的。问:是谁在养鱼? 下面是给出的15条线索。英国人住在红色的房子里;瑞典人养狗作为宠物;丹麦人喝茶;绿房子紧挨着白房子,在白房子的左边;绿房子的主人喝咖啡;抽Pall Mall牌香烟的人养鸟;黄色房子里的人抽Du原创 2018-03-09 16:32:49 · 1078 阅读 · 0 评论 -
有向图的拓朴排序及AOE网关键路径算法的Java语言实现
import java.util.*;public class CriticalPath { static class Graph { int num; //顶点个数 Vertex[] vertices; //顶点数组 public Graph(int num) { this.num = num; ...原创 2018-03-10 17:06:15 · 1317 阅读 · 1 评论 -
数独问题的Java语言求解
数独问题有一个很重要的概念是“相关20格”,就是指一个单元格它的同行、同列以及同一个小九宫格的共计20个小单元格 。每个单元格的变化只会直接影响它的相关20格。 首先为每个单元格建立一个候选列表,并且初始化的时候用已经给出的提示数对每个单元格的候选列表进行排除。然后循环对每个单元格进行试数,每进行一次试数,就需要更新这个单元格的相关20格的候选列表,如果这个单元格的相关20格中某个单元格的候选列原创 2018-03-11 18:47:31 · 943 阅读 · 0 评论 -
二叉树输出全部路径问题的非递归式解决方案
问题:对于一棵二叉树,输出所有从根结点到叶子结点的路径。主要思路是和二叉树的非递归式后序遍历差不多,都是先用一个栈来存储已经访问过的结点,直至遍历完它自己、它的左子树、它的右子树。但是后序遍历和其它两种遍历方式还是有些不同,前序遍历的过程是:结点入栈-->访问结点-->访问左子树-->返回结点-->结点出栈-->访问右子树;中序遍历的过程是:结点入栈-->访问左子树-->返回结点-->访问结点-->原创 2018-03-22 14:26:06 · 2198 阅读 · 0 评论 -
最长公共子字符串的java语言求解及内存优化
动态规划的本质是以空间换时间:把一个问题划分成许多子问题,如果这些子问题会被计算很多次,那就把它们的计算结果存储起来以节省计算时间。比如斐波那契数列的公式F(n) = F(n-1) + F(n-2),其中F(n-1)和F(n-2)的结果会被计算很多次,所以可以使用一个数组存储对应的结果a[i] = F(i)。动态规划问题求解的一般步骤是先划分子问题、找出状态转移方程、找出边界条件然后计算。在最长公共原创 2018-03-22 16:58:32 · 554 阅读 · 0 评论