
数据结构与算法
文章平均质量分 50
july0404
这个作者很懒,什么都没留下…
展开
-
最长上升子序列LIS算法实现
最长上升子序列LIS算法实现介绍一:LIS(Longest Increasing Subsequence)最长上升(不下降)子序列,有两种算法复杂度为O(n*logn)和O(n^2)。在上述算法中,若使用朴素的顺序查找在D1..Dlen查找,由于共有O(n)个元素需要计算,每次计算时的复杂度是O(n),则整个算法的时间复杂度为O(n^2),与原来算法相比没有任何进步。但是由于D的特点(转载 2014-11-07 15:13:33 · 349 阅读 · 0 评论 -
朱刘算法计算有向的最小生成树
图论是ACM竞赛中比较重要的组成部分,其模型广泛存在于现实生活之中。因其表述形象生动,思维方式抽象而不离具体,因此深受各类喜欢使劲YY的Acmer的喜爱。这篇文章引述图论中有关有向图最小生成树的部分,具体介绍朱刘算法的求解思路,并结合一系列coding技巧,实现最小树型图O(VE)的算法,并在最后提供了该算法的模版,以供参考。 关于最小生成树的概念,想必已然家喻户晓。给定一个连通图,要转载 2014-10-20 17:03:20 · 905 阅读 · 0 评论 -
迷宫求解
抽象结构见严蔚敏版《数据结构》3.2.4迷宫求解问题。#include#include#include#define TRUE 1#define STACK_INIT_SIZE 100#define OVERFLOW -2#define RANGE 100#define STACKINCREMENT 10#define OK 1#define ERROR 0#define原创 2014-12-10 08:54:22 · 451 阅读 · 0 评论 -
HDOJ 1024 Max Sum Plus Plus
练习点:dp dp优化dp[m][n] = max(dp[m-1][*], dp[m][n-1]) + a[j]这道题目开始就没有看懂,原创 2014-11-07 11:27:17 · 577 阅读 · 0 评论 -
HDOJ1015 Safecracker
练习点:DFSTips:1. cout,cin以及iostream的大量使用会严重降低速度,导致Time Limit Exceeded,以及极大的output size消耗。尽量使用stdio中的。2. getchar()命令读取单个字符 3. cin.getline(lett_set, 13,'\n');//注意是13最多能读取12个字符长度的字符串原创 2014-11-01 16:04:23 · 480 阅读 · 0 评论 -
HDOJ1011 Starship Troopers
练习点:DFS,DPhttp://acm.hdu.edu.cn/showproblem.php?pid=1011Problem DescriptionYou, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It原创 2014-11-01 09:37:43 · 411 阅读 · 0 评论 -
最小生成树Prim算法实现
//============================================================================// Name : MST.cpp// Author : Julie// Version : 0.0.1// Copyright : Julie@2014.10.19// Description : To Generate the MST wi原创 2014-10-19 11:48:49 · 429 阅读 · 0 评论 -
二叉树的前序中序后序遍历
这是非常基本但同时非常重要的基本概念,dai原创 2014-10-23 22:34:37 · 423 阅读 · 0 评论 -
KMP模式匹配算法
KMP的算法核心,在于引入next值,在对待查串做增量之外,避免了对子串逐一增加并一一比较。对于子串有较多重复内容,提高了效率。由于T="abcabx",此时分析x的next值,前缀的“ab”与最后“x”之前串的后缀“ab”是相等的。因此j就由6变成了3。因此,我们可以得出规律,j值的多少取决于当前字符之前的串的前后缀的相似度。换言之,理解的关键,对于j位置的字符,观察最前原创 2014-10-23 19:44:32 · 643 阅读 · 0 评论 -
桶式排序
适用范围:输入是一些小的整数。时间复杂度:O(P(N+B)) P:排序的趟数 N:被排序的元素的个数 B:桶数算法:1. 设置B个桶,为方便,可设0,1,...,92. 从低位开始,按照该位的大小,依次放入对应的桶3. 放完最高位,按顺序取出,即为排序后的结果原创 2014-10-24 10:42:00 · 514 阅读 · 0 评论 -
蓄水池蓄水问题
// Water pool.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <iostream>using namespace std;int Volume(int * height, int n){ int result = 0; int p_now = 1, p_prev = 0原创 2015-04-09 14:38:47 · 881 阅读 · 0 评论