自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mankind的博客

90后,计算机研究生,公众号:萌凯的程序人生

  • 博客(116)
  • 资源 (2)
  • 收藏
  • 关注

原创 【数位DP】模板+入门题HDU2089 FZU2109

数位dp 所谓数位dp,就是用来解决对一串数字有某些限制的这类题型。比如说,给定一个车牌号,要求不能有4出现或者是连续的62出现。这道题出现在HDU2089,可以说是数位dp的经典入门题型,解题思路我们可以用来作为模板。思路:一般适用dp[cur][state]来表示第cur层,状态为state的方案数,比如这道题,state就可以是0和1,来表示前一位是否为6,为什么需要这个

2017-03-26 11:09:49 630

原创 【图论】割边与桥,双连通分量与强连通分量

割点与桥割点:如果去掉一个点以及与它相关的边,使得整个图的连通分支数增加,那么这个点就是一个割点。桥:如果去掉一条边,使得整个图的连通分支数增加,那么这条边就是一座桥。tarjan算法求无向图的割点:定义low[u]为u或u的子树能够追溯到的最早的栈中节点的次序号,dfn[u]为节点u搜索的次序编号(时间戳)那么u是割点当且仅当u满足①u是dfs搜索树的树根,并且u含有

2017-03-25 22:00:12 1032

原创 【图论】欧拉图

所谓的欧拉图,就是我们小时候经常玩的一种"一笔画"游戏,从任意一个点出发,经过所有的边。而我们将这个模型抽象出来,对边和起点加了不同的限制,就得到了不同的定义。欧拉通路: 通过图中每条边且只通过一次,并且经过每一顶点的通路。欧拉回路: 通过图中每条边且只通过一次,并且经过每一顶点的回路。欧拉回路相关定理: 1、无向图为欧拉图(欧拉回路),当且仅当为连通图且所有顶点的度为偶数

2017-03-25 18:39:27 2083

原创 【图论】拓扑排序

拓扑排序 有一个拓扑排序的经典例子。在我们大学的计算机课程中,有c语言,数据结构,计算机网络,计算机组成原理,操作系统,数字电路等课程,而其中数据结构需要我们先掌握C语言才能进行学习,计算机组成原理需要我们掌握数字电路才能进行学习,除此之外还有许多的课程,他们有各自的前置课程,整张图错综复杂,而我们应该怎么去安排学生的课程呢?思路将所有的课程看做节点,每个节点跟它的前置节点之间由一

2017-03-25 16:19:02 678

原创 【动态规划】常见背包问题合集

01背包: 有N件物品和一个容量为V的背包。(每件物品只有一件)第i件物品的费用是c[i],价值是v[i],求解将哪些物品装入背包使总价值最大。转移方程:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]},可以优化只用一维数组.代码如下:  for(int i=0;i<nPack;i++) for(int j=nMaxVolume;j>=w

2017-03-20 23:14:28 2634

原创 【图论】最大流之EK算法与Dinic算法及最小费用最大流

最大流:给出一张网络图,并指定源点和终点,每条边都有它的容量,起点有着无限的流量,求从源点到经过的所有路径的最终到达汇点的最大流量和。对于同一个节点,流入的流量之和和流出的流量之和相同,即假如结点1有12流量流入结点2,结点2分别有8流量流入结点3,4流量流入结点4,这种情况是可以的。 EK算法:而EK算法反复寻找源点s到汇点t之间的增广路径,若有,找出增广路径上每一段[容量-

2017-03-20 19:59:54 2412

原创 【图论】匈牙利算法与KM算法(寻找二部图最佳匹配与最佳完备匹配)

匈牙利算法对于一个二分图,如何找到其最大匹配,也就是匹配数最大的匹配?答案便是匈牙利算法,它利用增广路径来求二分图最大匹配。我们通过一个例子来更好地说明二分图的情况。思路:假设有3个男生3个女生,现在我们要帮他们做配对(男生不可以互相喜欢,女生也一样),如果没有任何限制,即男生对女生没有任何要求,女生对男生也没有任何要求,那显然最大匹配就是3对啦。而情况通常是,每个

2017-03-19 23:32:09 4177 2

原创 【图论】最小生成树之prim算法与kruskal算法

MST(Minimum Spanning Tree,最小生成树)所谓的最小生成树,即在一个有n个结点的连通图中,n个结点之间有若干条边相连,这些边有不同的权值,要求找到使这些点连通并且所得到的权值总和最小,这样的一棵树被叫做最小生成树。从一张图中找出最小生成树的算法有两种,prim算法与 kruskal算法。prim算法思路:prim算法的代码类似于dijkstra

2017-03-16 22:00:03 812

原创 【图论】最短路径算法大全

Dijkstra算法特点:单源最短路径,无负权边。算法思路:设置一个dis[i]数组记录i到源点的最小距离。一开始只有源点的dis为0,其他全为无限大。从源点出发,更新周围与它相连的点。进行顶点次数的循环,每次寻找与源点距离最近的点,标记为已访问,并从该点出发更新相连的点的状态。根据三角不等式dis[i]+map[i][j]跟dis[j]比较,如果小于,说明经过i再到j比原来源点到j的最短

2017-03-16 17:53:49 1336

原创 【数论】gcd|扩展gcd|素数筛法|快速幂|欧拉函数(各种模板)

这里总结了一些基础的数学概念。整除:一个数可以被另一个数整除是数论中的一个关键概念。d|a(d整除a,a除以d)的含义是存在某个整数k,使得a=kd。称a是d的倍数,d是a的约数(因数)。带余数除法:a、b为两个正整数,且b≠,0,则存在唯一整数q和r,使得a=qb+r,0关于d|b的一些推论①   d|a且d|b,则d|(a+b)且d|(a-b)②   d|a且d|b

2017-03-15 14:08:55 1307

原创 【蓝桥杯真题】垒骰子(矩阵快速幂优化)

蓝桥杯真题-垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:11 的对面是 44,22 的对面是 55,33 的对面是 66。假设有 mm 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm 想计算一下有多少种不同的可能的垒骰

2017-03-12 15:37:41 1711

原创 【计算机网络】链路层

计算机网络之链路层协议运行链路层协议的任何设备称为结点。包括主机,路由器,交换机和Wifi接入点。沿着通信路径连接相邻结点的通信信道称为链路。链路层与网络层的关系:考虑一个交通运输类的例子,一个旅行社为游客计划了一个旅游方案:从城市A坐高铁去到城市B,又从B搭飞机去到一个新的城市C游玩。这两段运输过程是由不同的公司管理的,完全不同的运输方式,但都提供了运输的基本服务

2017-03-11 19:22:25 771

原创 【数据库】从零开始学MySQL数据库语法

#创建数据库CRETAE DATABASE Mankind CREATE DATABASE test#显示所有数据库show databases;#删除test数据库DROP DATABASE testShow databases;#使用数据库Use Mankind#创建表create table user(id int not null prima

2017-03-09 23:38:04 818

原创 【java总结】关于BIO、NIO、AIO的理解

在JavaIO中,提供了3种IO,分别是BIO,NIO和AIO。在学习这三个之前,我们需要先了解一些概念。 IO操作我们知道,一个程序需要经常读取一些外设的信息,如硬盘,显卡上的信息,这些操作被称为IO操作,以读操作为例,IO操作可以被分为两个阶段:①查看数据是否准备就绪,②进行数据拷贝。对于计算机来说,IO操作是非常耗时的,应为CPU跟外设之间的速度极度不匹配,相对CPU

2017-03-08 15:14:03 426

原创 【动态规划/背包】整数划分的5种情况

1.将n划分成若干正整数之和的划分数(可以存在相同整数)。转移方程如下:dp[n][m]=dp[n][m-1]+ dp[n-m][m]  dp[n][m]表示整数 n 的划分中,每个数不大于 m 的划分数。理解①:根据划分中包不包含m的情况分为2种,一种情况是划分中包含m,则剩下数的总和剩下n-m,相当于其划分数为dp[n-m][m]。另一种情况是划分中不包含m,那么其划分数为dp

2017-03-06 11:17:29 1207

原创 【计算机网络】网络层

网络层是协议栈中最复杂的层次之一。网络层的功能即将分组从一台主机发送到接收主机。这需要网络层协议提供两种功能:①转发。当分组到达路由器时,路由器必须将分组转发到适合的输出链路。②路由选择。当分组从发送方流向接收方时,网络层必须决定这些分那组所采用的路由或路径。计算这些路径的算法称为路由选择算法。③连接建立。就像TCP需要三次握手一样,以类似的方式,某些网络层体系要求从源到目的地沿着

2017-03-05 22:43:31 1607

原创 【计算机网络】运输层

运输层运输层协议为运行在不同主机上的进程提供了逻辑通信功能,使得主机之间好像直接相连一般。运输层协议最重要的便是TCP和UDP协议,这是当今最主流的运输层协议。运输层提供了不同主机上的进程之间的逻辑通信,网络层提供了主机之间的逻辑通信。他们之间的区别可以用一个例子来说明。假设有A家族和B家族的人,他们会互相通信。A家族由A1来负责收取A家族所有成员的信件,并将这些信件交到邮政服务的邮车上。

2017-02-27 23:45:10 1007

原创 【计算机网络】应用层

因特网作为一个世界范围的网络,其结构功能复杂。首先先来了解一些概念端系统:我们把个人主机,智能手机,平板电脑,电视等这些设备称为主机或者端系统。分组:当端系统向端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,此时的信息称为分组。分组交换机:端系统通过通信链路和分组交换机组合到一起。分组和交换机有路由器和链路层交换机两种。ISP(因特网服务提供商):如住宅区IS

2017-02-27 11:57:34 991

原创 【java总结】多线程进阶篇之辅助类

CompletionService将生产新的异步任务与使用已完成任务的结果分离开来的服务。生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果。例如,CompletionService 可以用来管理异步 IO ,执行读操作的任务作为程序或系统的一部分提交,然后,当完成读操作时,会在程序的不同部分执行其他操作,执行操作的顺序可能与所请求的顺序不

2017-02-20 19:43:35 401

原创 【java总结】多线程进阶篇之任务执行

众所周知,创建线程的方法有两种,一种是通过继承Thread并重写run()方法,一种是实现Runnable接口,由于run()方法是没有返回值的,因此,这样创建出来的线程也是没有返回值的。为了创造有返回值的线程,java提供了Callable和Future,通过这两个接口,可以在线程完成后得到结果。Callable泛型接口,它含有一个方法:V call() throws Excepti

2017-02-20 13:18:50 733

原创 【java总结】多线程进阶篇之数据结构

BlockingQueue阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口 java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。public class BlockingQ

2017-02-20 10:29:21 767

原创 【java总结】多线程进阶篇之locks包

Java.util.concurrent.locks包提供了一系列关于锁的抽象的类,主要的锁为ReentrantLock,ReentrantReadWriteLock。ReentrantLock(可重入锁)它与synchronized有着相同作用,且功能更加强大。它的构造函数可以传入一个boolean类型的公平因子,当传入true时,在多个线程竞争下将倾向于等待时间最长的线程。默认

2017-02-20 09:24:24 584

原创 【java总结】多线程进阶篇之atomic包

在java语言中,类似i++这种操作并不是原子性的。它并非线程安全的语句,在实际使用中,我们经常需要使用synchronized语句来保证数据的正确。现如今,大多数处理器都包含原子性指令,常见的指令是CAS(compare and set)和TAS(test and set),是一种加锁的原子操作指令。CAS 操作包含三个操作数 ——内存位置(V)、预期原值(A)和新值(B

2017-02-20 08:49:54 547

原创 【java总结】多线程(基础篇)

Java的线程分为5种状态:创建、就绪、运行、阻塞和死亡。创建:在java种创建线程的方式有两种,一种是通过继承Thread类并且重写run方法,run方法中执行的代码便是线程执行的代码。另一种是通过实现Runnable接口,并将该接口实例传入一个Thread实例。通过对Thread的引用调用start()方法,即可让线程进入就绪状态。如果直接调用run方法,并不会生成线程,而是在

2017-02-19 20:18:46 390

原创 【组合数学】卡特兰数总结

卡特兰数问题:n对括号有多少种合法的匹配方式?(卡特兰数的常见应用之一)结论:对于n对括号,合法的排列共有C(n,2n)-C(n+1,2n)基本思路:考虑n对括号,有n个(和n个),对于任意一个)其前面必定有一个(跟他对应,如果没有则是非法序列。也就是说,对于),其前面的(的数量必须大于等于)的数量。假设(=1,)=-1。合法的序列是 1 -11 -1 1 -1,不合法的序

2017-02-18 23:52:55 1161

原创 【匈牙利算法】二分图最大匹配(模板)

【匈牙利算法】这是一个在二分图中寻找最大匹配的算法。基本思路:寻找增广路径,它是一种用增广路径求二分图最大匹配的算法,找不到增广路时,达到最大匹配。所谓的增广路径,就是从一个未匹配点出发,经过非匹配边,匹配边,非匹配边,如果能到达一个未匹配点,则这条交替路称为增广路径。对于增广路径,我们必定能重新调整匹配,使得我们的匹配边+1。例子:现在假设有3个女生3个男生,每个人都

2017-02-18 20:42:39 771

原创 【数据结构】c++Map的简单应用&& getline()细节

题意:给出字典,字典含有密文和对应的原文。然后读入密文,密文以START开头,以END结尾,其中有若干行,输出密文翻译后的文本,如果单词在字典中无对应的则按原样输出,也保留所有非英文字母的特殊符号。输入格式字典部分以START开始,以END结束。中间部分每行两个单词,第一个是英文,第二个是蒜厂秘籍文字,以单个空格隔开。接下来是历史书部分,同样以START开始

2017-02-15 13:53:09 510

原创 【java总结】TCP/UDP

TCP(Transmission Control Protocol 传输控制协议)TCP主要是面向连接的协议,它包含有建立和拆除连接,保证数据流的顺序和正确性等功能。每次对TCP中间的数据操作相当于对一个数据流进行访问。它最典型的特征就是那三次握手的建立连接过程。Server端所要做的事情主要是建立一个通信的端点,然后等待客户端发送的请求。典型的处理步骤如下:1. 构建一个Server

2017-02-12 16:48:33 704

原创 【java总结】Genneric泛型

Genneric泛型在JDK1.5时引进,是 Java 语言中类型安全的一次重要改进。举个例子,在没有泛型的时候,List里可以放入任意Object,有时我们一厢情愿地认为里面所有放的都是String,在使用的时候把内容提取出来都转成String类来用,然而,List里可以有其他类型,如int类型,自定义类等..这种代码在编译期间不会报错,直到运行时才出现问题。泛型的引进,修正了这种问题,一个

2017-02-12 16:18:38 651

原创 【java总结】IO体系

javaIO体系主要分为两种,一种为读取字符的Reader/Writer,一种为读取字节的Input/OutputStream。下面对各个类进行详细介绍 FileInputStream/FileOutputStream以文件作为数据输入源的数据流。或者说是打开文件,从文件读数据到内存的类。FileInputStream可以使用read()方法一次读入一个

2017-02-11 22:31:02 496

原创 【java总结】注解Annotation

注解(Annotation)也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解不能直接干扰程序代码的运行,无论增加或者删除注解,代码都能正常运行。java自身提供了3种标准注解,Override注解,Deprecated注解,Suppre

2017-02-11 22:06:30 496

原创 【java总结】反射

JAVA反射机制JAVA有着一个非常突出的动态相关机制:Reflection,即反射机制,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。public class Pe

2017-02-11 21:13:44 419

原创 【java总结】集合框架

Collection是集合框架层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。Collection接口下有最常用的接口为List跟Set。然而,Map并没有实现Collection接口。L

2017-02-11 13:49:45 430

原创 【二进制枚举】求在n个数中取任意个数加起来组成x的方案数

问题:n个互不重复的数,通过加法凑出X,求出有多少种方案?思路:由于n并不大,可以使用二进制枚举的方法。看代码就能够理解

2017-02-08 18:31:22 1276 2

原创 【动态规划】最大子矩阵

问题:求一个n*m的矩阵中的最大子矩阵。思路:考虑只有一行的情况,在1*m的矩阵中,最大子矩阵可以很容易求出。 sum[j]=max(sum[j-1]+num[j], num[j])sum[j] 指的是从0开始到j的最大子段和。考虑两行的情况,最大子矩阵可能只有1行,也可能有2行。2行的最大子矩阵可以通过上下相加合并成一行,转换成最大子段和来求。考虑三行的情况,最大子矩阵可能有

2017-02-08 16:59:37 883

原创 操作系统概念扫盲

作为一名计算机专业的学生,对底层的东西都会比较感情兴趣。寒假看了《操作系统真象还原》这本书,作者写的很好,感觉不做下笔记的话对不起作者。软件是靠硬件运行的,软件能实现什么功能,很大程度上取决于硬件提供了哪些支持。理解好底层的东西,对学习新的概念和事物也有很大帮助。操作系统是非常复杂的体系结构,下面对最近学的内容进行梳理,方便以后查阅。内容有点多,大多摘自《操作系统真象还原》,感兴趣的慢慢看吧。

2017-02-07 15:39:07 2091

使用scrapy框架爬取拉勾网数据

使用scrapy框架爬取拉勾网数据,相关博客链接http://blog.csdn.net/hemk340200600/article/details/77803297

2017-09-02

基于SSH框架的简易博客系统

在eclipse上开发的基于SSH框架的简易博客系统,前端使用Bootstrap和JQuery,配合个人博客http://blog.csdn.net/Hemk340200600/article食用更佳

2017-05-08

空空如也

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

TA关注的人

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