自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

转载 杭电OJ题目分类

模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1

2016-09-24 21:52:19 856

转载 卡特兰数问题汇总

原文链接:http://blog.163.com/yichangjun1989@126/blog/static/131972028201462104644704/********************************************************************************************************组合数学中有非常多的组

2016-09-18 11:55:39 1617

原创 网易2017年秋招编程题之暗黑的字符串解析

题目:一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符串你的任务就是

2016-09-15 23:30:03 3637

原创 2016年9月11日美团笔试编程题之收红包问题解析

声明:本文章的解题技巧属于原创。**************************************************************************************************************************************************************************************

2016-09-11 21:55:22 3230 1

原创 Dijkstra算法,Bellman-Ford算法和BFS算法解决有向图的单源最短路径问题

最短路径问题是一个很常见的问题,与其相关的算法也很多,本文总结了三种不同的算法来解决这个问题,并进行了一些对比分析。本文不像教科书那样详细介绍每种算法的具体细节,可以阅读这篇文章:http://dsqiu.iteye.com/blog/1689163,里面讲的和详细。一.Dijkstra算法相信说到单源最短路径问题,大家都会想到著名的Dijkstra算法。Dijkstra算法本质上是一种贪

2016-08-26 22:57:31 4676

转载 《背包九讲》带你玩转背包问题!

最近在学习DP,涉及到背包问题,有幸接触到《背包九讲》这篇神一样的文章,感觉收获很大!果断收藏!******************************************************************************************************************************************************

2016-08-22 17:59:48 631

转载 Linux 学习路线指南

很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。 就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对

2016-08-18 21:54:01 322

原创 地下城夺宝游戏——杭电OJ 1044题解析

题目来源:杭电OJ-1044题目大意:一个探险家身处一个危险的地下城,城中很危险,并且城中分散着若干个珠宝;现在地下城即将塌陷,冒险家需要在有限的时间内逃出去,但他希望在逃生的过程中获取一些珠宝并使价值最大化。题目要求用程序计算出最优方案所能获取的珠宝价值。以前也遇到过相似的题目,但一直未真正搞明白,最近再次遇到,阅读了一些大牛的博客,结合自己的理解,将这个知识点记录一下。这道

2016-07-27 16:31:20 876

转载 迷宫的最短路径之BFS算法

给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置。试求出起点到终点的最小步数。(本题假定迷宫是有解的)(N,M样例输入:10 10样例输出:22这道题目以及解法均来自《挑战程序设计竞赛(第2版)》第34页-36页;个人觉得这个例题很好地表现了广度优先搜索是如何与队列先

2016-06-28 10:19:35 27679 1

原创 求图中最短路径算法之Floyd-Warshall算法——C++实现

Floyed-Warshall算法使用动态规划的思想来计算图中所有节点对之间的最短路径,其运行时间复杂度为O(V^3),该算法的约束条件为图中不能包含权值之和为负的环,但可以包含权值为负的边。该算法相对于Dijkstra算法而言较难理解,建议感兴趣的可以阅读《算法导论》这本书中的第25章,里面分析的比较全面。动态规划思想运用范围比较广,对其深刻理解并能灵活运用比较难,所以在学习Floyed-War

2016-06-26 16:24:09 4013

原创 求图中最短路径算法之Dijkstra算法——C++实现并优化

Dijkstra算法是一种比较经典的求图中最短路径算法,它是一种贪心算法,可以求出从源节点到图中其他所有节点的最短路径。适用范围:用于求有向或无向加权图中两点间的最短路径,其中边的权值不能为负。最近重新学习了该算法,并用C++将其实现,同时对代码进行了优化,优化思路如下:一般的Dijkstra算法实现代码,在每次将节点添加到S集合之前,都要在所有节点中进行搜索,找出代价最小的节点进行添加。

2016-06-25 17:11:45 12017 3

原创 Ubuntu 14.04下安装eclipse搭建C++开发环境

安装过程分为两部分:1.JAVA开发环境,即JDK的安装;2.eclipse的安装;一.安装包下载1.JDK官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html   里面有各种版本可供选择,此处我选择的是Linux x64版本,文件名为:jdk-8u91-li

2016-06-23 23:36:29 7858 1

原创 最小生成树之Kruskal和Prim算法——C++实现

很久以前就学过最小生成树之Kruskal和Prim算法,这两个算法很容易理解,但实现起来并不那么容易。最近学习了并查集算法,得知并查集可以用于实现上述两个算法后,我自己动手实现了最小生成树算法。宏观上讲,Kruskal算法就是一个合并的过程,而Prim算法是一个吞并的过程,另外在Prim算法中还用到了一种数据结构——优先级队列,用于动态排序。由于这两个算法很容易理解,在此不再赘述。接下来给出我

2016-06-18 17:16:32 14081 4

转载 数位DP 浅谈(hihocoder 1033:交错和)

数位DP是一种比较特殊的DP方法,之所以了解到是为了尝试解决hihocoder上一道交错和的题目,更详细的信息请参考:文章《浅谈数位类统计问题》和讲义《初探数位DP》事实上在ACM中,我们经常遇到如下类问题:求整数区间[L,R]中满足条件Q的整数的个数(或它们的和、积等)对于这类问题,乍一看是数论问题,但是却发现条件Q一般不是那么明显,找不到简单的规律;尝试逐个枚举,显然时间超出。

2016-06-16 11:37:51 450

原创 拓扑排序——用C++中STL实现

最近学习了拓扑排序,发现网上很多人对它的实现比较复杂,无论是在编程比赛,还是在实际开发中都比较耗费时间,所以用C++中STL实现该算法的好处就不言而喻!首先简单介绍一下拓扑排序算法:拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。    (1) 选择一个入度为0的顶点并输出之;    (2) 从网中删除此顶点及所有出边。循环结束后,若输出的顶点数小于网中的顶点

2016-06-15 11:35:28 9838 11

原创 《hihoCoder太阁最新面经算法竞赛4》题目解析【含源代码】

题目1 : 树结构判定描述给定一个包含 N 个顶点 M 条边的无向图 G ,判断 G 是不是一棵树。输入第一个是一个整数 T ,代表测试数据的组数。 (1 ≤ T ≤ 10)每组测试数据第一行包含两个整数 N 和 M 。(2 ≤ N ≤ 500, 1 ≤ M ≤ 100000)以下 M 行每行包含两个整数 a 和 b ,表示顶点 a 和顶点 b 之间有一

2016-06-14 20:10:57 2273

原创 算法:母函数在算法中的运用

最近在刷杭电OJ的时候,接触到了母函数理论,发现该理论应用比较多,而且对于新手比较难以理解,故决定写一篇通俗易懂的文章,本文章是在理解别人文章的基础上,再加上自己的理解,所以难免有很多地方重复,在结尾我会给出引用文章。在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方

2016-06-07 15:47:57 552

原创 算法:康托展开式——实现全排列序列与序号的映射

康托展开式实现了由1到n组成的全排列序列到其编号之间的一种映射,下面会给出例子,虽然这个公式应用不是很多,但这种思想值得学习,首先给出其公式:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!一.公式的说明由1到n这n个数组成的全排列,共n!个,按每个全排列组成的数从小到大进行排列,并对每个序列进行编号(从0开始),并

2016-06-07 10:23:49 3936 3

转载 算法: 最长递增子序列详解

一个各公司都喜欢拿来做面试笔试题的经典动态规划问题,互联网上也有很多文章对该问题进行讨论,但是我觉得对该问题的最关键的地方,这些讨论似乎都解释的不很清楚,让人心中不快,所以自己想彻底的搞一搞这个问题,希望能够将这个问题的细节之处都能够说清楚。对于动态规划问题,往往存在递推解决方法,这个问题也不例外。要求长度为i的序列的Ai{a1,a2,……,ai}最长递增子序列,需要先求出序列Ai

2016-06-06 23:27:54 560

转载 Linux中的内存管理

前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪些问

2016-03-30 15:17:44 337

原创 一种求解组合数的思路

排列数:从n个对象组成的集合中取出m个对象组成子集,排列数即为这种子集的个数,记为P(n,m)(和数学中表示不同,为了便于书写),0排列数的数学求解公式为: P(n,m)=(n!)/(m!*(n-m)!)我们知道,一个数的阶乘随着这个数的的增长增长的很快,如果用int表示来存储阶乘的结果,到14的时候结果就溢出,就算用long long类型存储结果,到21时也会溢出,本文提供另一种求解排列

2016-01-26 16:03:10 828

原创 交换两个数值变量值得算法

最近在看一些文章时,发现了几种交换两个数值变量值得算法,现在作一下归纳总结!小算法,大智慧!1.传统做法void swap(int &a, int &b){int temp = a;a = b;b = temp;}2.通过加减运算实现void swap(int &a, int &b){a = a + b;b = a - b;a = a

2016-01-05 17:55:48 432

转载 ADO.NET对象组成与数据库连接方法

好多C#初学者这在学习C#与数据库访问时,经常出现各种错误,今天在这里给大家详细的讲解一下。,首先您要明白为什么要学习ADO.NET,前面我们学习C#面向对象编程基础和数据库,在讲数据库的时候,我们就已经告诉您了,数据库除了具备强大的数据处理和分析能力以外,更重要的是它要和应用程序配合使用,应用程序是程序员使用C#或其他编程语言编写的,供普通人员使用。而数据库的数据存取任务多数情况下是通过和自己配

2016-01-04 13:38:18 6697

原创 调用Windows接口访问注册表来获取程序安装路径

最近在做一个程序,需要获取Windows中程序的安装路径,在网上查了一下,了解到可以运用调用Windows接口访问注册表的方法。网上有很多这样的文章,但真正自己动手,还是会遇到这样那样的问题,我将自己的程序记录下来,供大家参考。    下面是获取系统中QQ安装路径的程序,我就不再一行行介绍代码了,网上有大量的文章:#include#includeusing name

2015-12-03 11:34:24 3154

原创 关于CMake编译生成的工程文件不能移动的问题

最近接触到了CMake编译,学习的过程中遇到了很多问题,现在记录一下,希望能帮助一些人少走弯路。    我是使用CMake在Windows平台下编译一个开源软件的源代码,编译成功后,我却发现生成的工程文件不能移动,移动之后用VS打开,里面显示的文件存储位置仍为原来的路径。原来CMake使用的是绝对路径,这导致了上述问题。然后我在网上寻求解决办法,但相关的文章很少,一种解决方案说编译时启动C

2015-12-03 11:30:33 3054

原创 C++下遍历文件夹内文件

遍历文件夹内文件用到结构体_finddata_t和三个函数:_findfirst, _findnext, _findclose,首先包含头文件:#include ​“io.h”结构体_finddata_t的基本信息如下:​struct _finddata_t{    unsigned attrib;     //文件属性    time_t time

2015-12-03 11:27:35 462

原创 C++中创建文件夹

最近由于工作的需要,在C++程序中需要创建新文件夹,在网上查阅了一下,现在进行总结一下。    我的程序是运行在windows平台下,所以创建文件夹时需要调用windows里的接口,将程序加上以下几行:#include ​“windows.h” #include "shlwapi.h"​#pragma comment(lib, "shlwapi.lib")

2015-12-03 11:24:29 2016

原创 C++之动态链接库和静态链接库归纳…

最近工作中接触到了C++动态链接库,一开始搞不明白,在网上查阅了很多资料,现在对这些知识进行归纳总结。   运行平台:win7操作系统    使用工具:VS2013一.动态链接库的创建和调用1.动态链接库的创建打开VS2013,然后一次点击”FILE->New->Project”,在弹出对话框中选择”Visual C++->Win32 Console Appl

2015-12-03 11:17:31 552

C#开发学员管理系统源码

本项目采用了两层架构,即显示层和数据访问层,实现了学员信息的增、删、查、改,课程、分数信息的查询,以及学员打卡签到等功能,代码中都带有相应的注释,适合初学C#者参考学习。

2016-01-10

Linux下用QT开发音乐播放器

最近在Linux下开发了一款音乐播放器,实现了音乐播放器的基本功能,适合新手参考学习!

2015-06-05

空空如也

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

TA关注的人

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