`
yzmduncan
  • 浏览: 330403 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论
文章列表
    都做过倒水的问题,有一个3升和5升的水桶和无限的水,现在要求桶中恰好装入4升水。POJ3414就是这类的倒水问题,给你两个桶,容量为A,B。现在要求称出C升水。(1<=A,B<=100,C<=MAX(A,B))     并且要使操作次数最少,打印最少次数和操作。     操作次数最少,显然是广度优先搜索可以快速达到要求。对于两个桶的状态,它一共有六种操作:把A倒满,把B倒满,把A清空,把B清空,把A中的水倒入B,把B中的水倒入A。这样搜索就是搜索一棵6叉树,注意保存路径(每个状态都有一个父状态)。   #include <iostream> usi ...
   SPFA是目前相当优秀的求最短路径的算法,值得我们掌握。   SPFA对Bellman-Ford算法优化的关键之处在于意识到:只有那些在前一遍松弛中改变了距离估计值的点,才可能引 起他们的邻接点的距离估计值的改变。因此,用一个先进先出的队列来存放被成功松弛的顶点。初始时,源点s入队。 当队列不为空时,取出对首顶点,对它的邻接点进行松弛。如果某个邻接点松弛成功,且该邻接点不在队列中,则将其 入队。经过有限次的松弛操作后,队列将为空,算法结束。SPFA算法的实现,需要用到一个先进先出的队列 queue 和 一个指示顶点是否在队列中的 标记数组 mark。为了方便查找某个顶点的邻接点,图 ...
Bellman-Ford用来解决单源最短路径问题,相比Dijkastra,它的限制更少:边权值可以为负。同时,还能检测出负环(正环)。但普通的Bellman-Ford时间复杂度高于Dijkastra,因此更多人喜欢使用SPFA。但经过优化的Bellman-Ford算法,时间复杂度大大降低,可以相比于SPFA。 这里推荐:http://www.cppblog.com/apple365/archive/2008/11/27/67943.html,这里有详细Bellman-Ford原理及其优化过程。   #include <iostream> using namespace std ...
    在一个图中,若从一个结点到另一个结点存在着路径,定义路径长度为一条路径上所经过的边的权值之和。从一个结点到令一个结点可能存在着多条路径,路径最短的那条称作最短路径。     Dijkastra思想(不能包含负权值的边):     设置两个结点集合S和T,S中存放已找到最短路径的结点,T中存放当前还未找到最短路径的结点。初始状态S中只包含起始点u0。然后不断的从集合T中选择到u0路径长度最短的结点v,每次加入,都要修改从源点u0到集合T中剩余结点的当前最短路径长度,为原来路径长度与u0经过v到达该结点的路径长度中的较小者。当T为空,算法结束。     Dijkastra设计:    ...
    在n个城市之间铺设光缆,铺设光缆费用很高且各个城市之间铺设光缆的费用不同。如果设计目标是使这n个城市之间的任意两个城市都可以直接或间接通信,并且要使铺设光缆的费用最低,这样的问题就是一个求最小生成树的问题。解决这个问题的方法就是在有n个城市结点、n(n-1)/2条费用不同的边构成的无向连通图中找出最小生成树。     最小生成树的应用相当广泛,是图论中比较基础的算法。解决最小生成树有两种算法:prim和kruskal。     prim的思想:     设置两个集合U和V,U中存放图G中最小生成树的结点集合,V是整个结点集合。初始令U ={u0},设u0为起始点(任意设定)。从U和 ...
一.定义 拓扑排序就是在一个有向无环图中,将所有顶点排成一个线性序列,使得在途中任意一对定点U,V,若<u,v>∈E(G),则U出现在线性序列V之前。通常将这样的线性序列称为满足拓扑次序的序列,简称为拓扑序列。   二. 算法   a)扫描顶点表,将入度为零的顶点入栈; b)当栈非空时: 输出栈顶元素v,出栈; 检查v的出边,将每条出边的终端顶点的入度减1,若该顶点入度为0,入栈; c)当栈空时,若输出的顶点小于顶点数,则说明AOV网有回路,否则拓扑排序完成。    三. 实现   public static int topSort() { int i ...
     2010年7月20号,进入了一家小软件公司实习。主要做java Web方面的应用。刚开始没用过java,难免有点心虚,但迟早是要出来混的,到公司去了可不能丢脸啊。于是看起了马士兵老师的java基础视频,一边还学习html、javascript、jsp、mysql等等,后来做了一个纯jsp的通讯录。      真正开始做事是从8月中旬开始,基于ssh(struts2+spring+hibernate),为汉口火车站做一个OA系统。这无疑对我们是个挑战。一系列的概念就涌过来了:MVC,IOC,pojo,dao,service,action,页面,el,ognl。做项目提高的确实比较快,一 ...
在装Microsoft SQL Server 2005 Express Edition之后,进入Configuration Manager 不正常,弹出框:   无法连接到WMI提供程序。您没有权限或者无法访问服务器。请注意,您只能使用SQL Server 配置管理器来管理SQL Server 2005和更高版本的服务器。 找不到指定的模块。[0x8007007e]   解决方法:检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system3 ...
现在网络上的浏览器,操作系统就象中国的方言一样,那个叫多啊!这给我们这些开发人员 带来了巨大的痛苦!虽然可能大家的喜好不同!用的系统也不同!有人喜欢用ie,有人喜欢用 firefox,还有人喜欢用腾讯tt,而我喜欢用maxthon.虽然名字可能有很多种,但是内核还是只有 那么的几种!ie内核,netscape内核!怎么样用js来判断各种浏览器的类型呢! 在不同的浏览器中对js的支持程度,语法要求都不大一样!
最近在做前台开发时,遇到一个用户注册的页面,里面需要进行各种各样的验证:身份证号码检查,用户名、邮箱是否存在(AJAX技术)等等。   页面见附件。   具体页面代码:     <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
完整的Oracle数据库通常由两部分组成:实例和数据库。 1、数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);  2、实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。 Oracle数据 ...
java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。   (1).对象不一定会被回收。   (2).垃圾回收不是析构函数。   (3).垃圾回收只与内存有关。   (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。   有时当撤消一个对象时,需要完成一些操作。例如,如果一个对象正在处理的是非
         实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。     方法摘要  int compareTo(T o)           比较此对象与指定对象的顺序。     比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。      
JAVA异常处理是程序开发的一个重要内容,异常处理的好坏关系到系统的健壮性和稳定度。异常处理看起来只有几个常用语句,故有些开发人员常常会对异常处 理轻视和在使用上思路模糊。近期笔者在一个开发项目中就体验到轻视异常处理的惨痛教训,因为对异常没有处理好,后果是严重影响系统稳定性。因此,笔者认为 异常处理并不是表面看起来的那么简单。本文分享在此项目过程中对异常处理的一些看法。   一. 什么是异常 在JAVA程序运行时,我们常常会出现一些非正常的现象,这种情况称为运行错误。根据其性质可以分为错误和异常。JAVA用面向对象的方法处理异常,首先 会建立类的层次。类 Throwable位于这一类层次的 ...
1.何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。 2.设计equals() [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域,使用==比较; [2.2]对于对象引用域
Global site tag (gtag.js) - Google Analytics