自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

线段树入门学习(二)(兼解POJ3468) JAVA

继续上文[url]http://128kj.iteye.com/blog/1738772[/url]: 在那里用链状结构实现了二叉线段树,下面程序使用一维数组以完全二叉树的方式来存储。先看一维数组存储线段树到底需要开多大的数组,网上有一个计算程序:[code="java"]import java.util.Scanner;/*线段树空间计算程序 Power By:Com...

2012-11-30 16:55:13 93

线段树入门学习(兼解HDU1754)

先看网上的介绍: 线段树也叫区间树,顾名思义,线段树是一种基于区间的树,每个节点表示一个“线段”或“区间”。树的根节点表示是“整体”的区间,左右子树分别表示这个区间的左半边和右半边。基本结构及性质 假设要构造一个表示N个区间大小的线段树,线段树的根节点表示区间[0,N-1],然后将区间分成两半,分别为左右子树表示,这样的线段树的节点只有2N-1个,是O(N)级别的,如图...

2012-11-30 11:24:20 102

原创 AVL树及JAVA实现

一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。 在构造二叉排序树的过程中,每当插入一个结点时,首先检查是否因插入而破坏了树的平衡性,如果是因插入结点而破坏了树的平衡性,则找出其中最小不平衡子树,在保持排序树特性的前提下,调整最小不平衡子树中各结点之间的连接关系,以达到新的平衡。这样就可以得到AVL 树。 平衡调整的4种基本类型:[img]ht...

2012-11-26 16:34:22 84

原创 图解平衡二叉树

形态匀称的二叉树称为平衡二叉树 (Balanced binary tree) ,其严格定义是:一棵空树是平衡二叉树;若 T 是一棵非空二叉树,其左、右子树为 TL 和 TR ,令 hl 和 hr 分别为左、右子树的深度。当且仅当①TL 、 TR 都是平衡二叉树; ② | hl - hr |≤ 1;时,则 T 是平衡二叉树。【例】如图所示。[img]http://d...

2012-11-26 11:34:58 185

二叉搜索树练习 POJ 1577

一棵二叉查找树是按二叉树结构来组织的。这样的树可以用链表结构表示,其中每一个结点都是一个对象。结点中除了数据外,还包括域left,right和p,它们分别指向结点的左儿子、右儿子,如果结点不存在,则为NULL。 它或者是一棵空树;或者是具有下列性质的二叉树: 1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大...

2012-11-25 20:04:59 170

二叉搜索树练习 HDU3791

一棵二叉查找树是按二叉树结构来组织的。这样的树可以用链表结构表示,其中每一个结点都是一个对象。结点中除了数据外,还包括域left,right和p,它们分别指向结点的左儿子、右儿子,如果结点不存在,则为NULL。它或者是一棵空树;或者是具有下列性质的二叉树:1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于...

2012-11-25 19:52:36 81

使用字典树和Hashtable两种方法解POJ 2503(JAVA)

poj2503题意:  给出一个最多有100000对单词的英语和外语的字典,然后给你一个外语单词 要求你查字典翻译成英语,如果词典里查不到就输出eh。样例:Sample Inputdog ogdaycat atcaypig igpayfroot ootfrayloops oopslayatcayittenkayoopslaySa...

2012-11-24 20:00:50 316

深度优先遍历字典树(统计单词出现的个数)

例:给出一个字符文本,每行一个字符串,统计不同的字符串出现的百分比,最后按ASCII排序输出不同字符串和出现的百分比。 分析:对输入字符串建立字典树,在叶子结点记录该字符串出现的次数。这样的话,最后DFS搜索就可以查找每个字符串出现的次数。样例:Sample InputRed AlderAshAspenBasswoodAshBeechYellow B...

2012-11-23 22:18:38 684

字典树练习 POJ 1056

Trie树提供给了一种能够在字符串的长度n时间内判断出来是否在已有集合中已经存在这个字符串了。POJ 1056是判断前缀码的问题。如果所有字符串都不是其他的字符串的前缀的话,那么就是可以直接编码的。POJ 1056题目大意: 给你几个二进制代码,如果有其中一个代码是另一个的前缀,输出is not immediately decodable,反之,输出immediately d...

2012-11-23 09:42:17 143

学习使用字典树(JAVA)

字典树 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 它有3个基本特性:   1)根节点不包含字符,除根节点外每一个节点都只包含一个字符。   2)从根...

2012-11-22 09:25:53 66

JAVA中的优先队列与堆(POJ 2442)

POJ 2442 题目大意: 给出m个序列,每个序列有n个非负整数,每次从每一个序列中取出一个数(共m个数)求和(显然有 n^m 个和),求这些和数中前n个最小的数。样例:(第一行是测试次数1,第二行是m和n,接下来是m个序列)Sample Input12 31 2 32 2 3Sample Output3 3 4解题步骤:...

2012-11-20 11:28:10 100

原创 用堆实现简单的优先队列(JAVA)

优先队列,顾名思义,就是一种根据一定优先级存储和取出数据的队列。它可以说是队列和排序的完美结合体,不仅可以存储数据,还可以将这些数据按照我们设定的规则进行排序。 优先队列主要方法: void add(Object o);//进队 void offer(Object o);//进队 Object poll();//出队 Object peek();//查看队列首元素 b...

2012-11-18 23:32:25 89

彻底弄懂最大堆的四种操作(图解+程序)(JAVA)

堆有最大堆和最小堆之分,最大堆就是每个节点的值都>=其左右孩子(如果有的话)值的完全二叉树。最小堆便是每个节点的值都 1) { //求出父亲的节点 int parent = index / 2; //获取相应位置的数值 int parentValue = (Integer...

2012-11-17 21:50:19 337

学习使用jdk1.7中内置数据库Derby(三)

继续上文:学习使用jdk1.7中内置数据库Derby(二)[url]http://128kj.iteye.com/blog/1727385[/url][color=blue]三) 运行网络模式的Derby数据库[/color] 这种模式下,需要使用两个控制台窗口,一个用于启动Derby数据库服务端,另一个做为访问Derby数据库的客户端。 可以通过DERBY_HOME\...

2012-11-16 14:46:17 132

学习使用jdk1.7中内置数据库Derby(二)

继续上文"学习使用jdk1.7中内置数据库Derby(一)"[url]http://128kj.iteye.com/blog/1725848[/url] Derby提供了三个工具脚本:1)sysinfo;2)ij;3)dblook。运行这三个脚本时,如果你没有设置classpath环境变量,这些脚本会自动进行设置。1) sysinfo使用sysinfo可以显示你的Java...

2012-11-15 20:35:03 96

学习使用jdk1.7中内置数据库Derby(一)

Java内嵌数据库Derby环境配置和使用 Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。jdk1.6和jdk1.7内嵌了Derby数据库,安装在jdk的安装目录下的子目录db中,以下以jdk1.7为例说明,db目录中有:1...

2012-11-14 22:24:10 166

原创 如何求无向图的最小环

POJ1734题意:给定一个N个点的无向图,求一个最小环(各边权值和最小的环)并输出路径。[img]http://dl.iteye.com/upload/attachment/0076/5420/aa938234-320b-323c-b51b-bb53936f3bed.gif[/img]样例:Sample Input5 7 (图有五个点,七条边)1 4 1 (...

2012-11-13 19:02:42 179

原创 上楼梯(深搜+回溯)JAVA解答

N阶楼梯上楼问题:一次可以走两阶或一阶,请把所有行走方式打印出来。 [code="java"]import java.util.Scanner; public class Main{ private int n; private int[] answer;//存入上楼梯的方法 private int ways;//上楼梯方法总数 public...

2012-11-12 15:28:39 122

回溯法入门学习之二(九宫格与数独)

回溯法的基本做法是搜索解空间,一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。上文“回溯法入门学习之一”[url]http://128kj.iteye.com/blog/1722216[/url]中已给出了一个框架:[color=blue]"深度优先搜索+回溯"递归框架: [/color]函数DFS(节点){ 如果(节点=目标节点) {找到目标,跳出} 遍历...

2012-11-11 08:53:28 286

回溯法入门学习之一

一: 回溯法 有时我们要得到问题的解,先从其中某一种情况进行试探,在试探过程中,一旦发现原来的选择是错误的,那么就退回一步重新选择, 然后继续向前试探,反复这样的过程直到求出问题的解。比喻:“下棋”: 每一次走棋的位置都要考虑到是否是损人利己,如果是害人害己的走法就要回撤,找下一步损人利己的走法。又如玩RPG游戏中碰到“迷宫”大家是怎样出来的? 回溯跟深度优先遍历是分不开的,我...

2012-11-10 15:53:41 171

原创 深度优先搜索解组合问题(JAVA)

题:输出从n不同元素中取m个的所有组合下面程序使用了深度优先搜索:public class Combination{ private char a[]; //存储初始字符串 private char r[]; //存储组合结果 public Combination(char[] a){ this.a=a; r=new char[a.length]...

2012-11-10 12:17:23 122

求一个无向图的最大环的边数(POJ3895) (java解答)

POJ 3895题意: 求最大环的边数,给出一个无向图,图中每条边的长度都是1,求图中最长环的长度是多少?样例:Sample Input1 -------->这里是测试次数7 8 ----------------->七个点,八条边3 4 ---------------->顶点3到4有一条边1 4 1 3 7 1 2 7 7 5 5 6...

2012-11-08 11:38:25 702

原创 深度优先搜索输出有向图中的所有环(JAVA)

如图:求出有向图的所有环。[img]http://dl.iteye.com/upload/attachment/0076/2311/5f987942-21b0-33b0-b0df-e9b62b9d7c65.gif[/img][code="java"]import java.util.ArrayList;import java.util.Arrays;public class T...

2012-11-06 14:22:52 3642

原创 图示克鲁斯卡尔构造最小生成树的过程

[img]http://dl.iteye.com/upload/attachment/0076/2247/ac389ecf-454a-3899-9aef-57a6fbe77bcb.gif[/img][img]http://dl.iteye.com/upload/attachment/0076/2249/d44d4aa3-35ba-33d2-ad3b-36b5b113a278.gif[/im...

2012-11-06 11:29:16 305

原创 图示普里姆算法构造最小生成树的过程

[img]http://dl.iteye.com/upload/attachment/0076/2240/0f0ef275-9023-3032-b0d1-ec206a9d1085.gif[/img][img]http://dl.iteye.com/upload/attachment/0076/2242/6a751641-e0a7-36ea-84bb-e9109e782b45.gif[/...

2012-11-06 11:24:47 936

原创 三种算法(Floyd、Dijkstra、SPFA)求单源点最短路径。

题(HDU2544): 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N...

2012-11-05 13:15:01 81

原创 Dijkstra算法解HDU1874

Dijkstra算法是用来解决:确定起点的最短路径问题:即已知起始结点,求最短路径的问题。 它是常用的最短路径算法之一。最常用的路径算法有:Dijkstra算法、A*算法、Bellman-Ford算法、Floyd-Warshall算法、Johnson算法。 缺陷:它一般用来解决正权,单源路径的最短路问题。 Dijkstra算法思想:设G=(V,E)是一个带权有向图,把图中...

2012-11-05 10:15:42 82

原创 SPFA算法求单源最短路径

 很多时候,给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。简洁起见,我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路。   我们用数组dist记录每个结点的最短路径估计值,而且用邻接表(或邻接矩阵)来存储图G。采取的方法是动...

2012-11-04 23:00:00 128

原创 图解Bellman-Ford算法

Bellman-Ford算法: 为了能够求解边上带有负值的单源最短路径问题,Bellman(贝尔曼)和Ford(福特)提出了从源点逐次绕过其他顶点,以缩短到达终点的最短路径长度的方法。[img]http://dl.iteye.com/upload/attachment/0076/0621/e2977195-d3bb-34bb-b4aa-168452a7ff26.gif[/i...

2012-11-03 19:39:20 256

原创 Bellman-Ford算法教学PPT

Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。Bellman-Ford算法的流程如下: 给定图G(V, E)(其中V、E分别为图G的顶点集与边集),源点s,Bellm...

2012-11-03 12:06:40 177

昆虫的同性恋

题目大意: 输入一个数t,表示测试组数。然后每组第一行两个数字n,m,n表示有n只昆虫, 编号从1—n,m表示下面要输入m行交配情况,每行两个整数,表示这两个编号的昆虫为异性,要交配。 要求统计交配过程中是否出现冲突,即是否有两个同性的昆虫发生交配。[输入输出]: [样例]: Sample Input2 (二次测试)3 3(三条虫子,三对信息)1 22 31...

2012-11-01 19:21:54 139

拓扑排序入门练习

拓扑排序简单来说就是把一个图的所有节点排序,使得每一条有向边(u,v)对应的u都排在v的前面。 拓扑排序最大的用途就是判断一个有向图是否有环。无前趋的顶点优先的拓扑排序方法 该方法的每一步总是输出当前无前趋(即人度为零)的顶点,其抽象算法可描述为: NonPreFirstTopSort(G){//优先输出无前趋的顶点 while(图G中有人...

2012-11-01 16:51:14 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除