自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 二分图匹配——匈牙利算法和KM算法

二分图的概念二分图又称作二部图,是图论中的一种特殊模型。 设G=(V, E)是一个无向图。如果顶点集V可分割为两个互不相交的子集X和Y,并且图中每条边连接的两个顶点一个在X中,另一个在Y中,则称图G为二分图。 二分图的性质定理:当且仅当无向图G的每一个回路的次数均是偶数时,G才是一个二分图。如果无回路,相当于任一回路的次数为0,故也视为二分图。二分图的判定如果一个图是连通...

2018-11-08 10:02:15 2409

转载 nth_element()函数

头文件:#include<algorithm>作用:nth_element作用为求第n大的元素,并把它放在第n位置上,下标是从0開始计数的,也就是说求第0小的元素就是最小的数。 如:a[start,end]元素区间。排序后a[n]就是数列中第n+1大的数(下标从0開始计数)。要注意的是a[start,n),    a[n,end]内的大小顺序还不一定。仅仅能确定a[...

2018-11-07 07:54:37 286 1

转载 imos-累积和法

在解AOJ 0531 Paint Color时,学到了一个累积和的妙用——imos法,由于原文是日语,所以特意翻译过来。值得一提的是,作者Kentaro Imajo跟鄙人同龄,却已取得如此多的成就,而鄙人一无所成,实在汗颜。imos法imos法是将累积和算法拓展到多次元、高次空间的方法。虽然程序竞赛中出题最多不过2次元1次,但是2012年Kentaro Imajo将其用于高次元高次空间,在...

2018-11-06 08:28:55 1054

转载 KMP算法

我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“假如你要向你喜欢的人表白的话,我的名字是你的告白语中的子串吗?”解决这类问题,通常...

2018-11-01 21:13:40 96

转载 map详解

C++中map提供的是一种键值对容器,里面的数据都是成对出现的,如下图:每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。——————————————————————————————————————————————一. 声明//头文件#include<map>map<int, string> ...

2018-11-01 21:06:49 744

转载 对拍

很多人考noip之类的比赛永远会发生一些奇怪的问题比如说下面这两位(来自我的两位学长)sliver n:spli,考得怎样啊?spli:就那样啦,day1T1没推出来规律,别的还好silver n:看来你省一高分预定啊几周后。。。silver n:分出来了吗?spli:出来了。。。silver n:怎么了?spli:别提了,day2T2挂了,没拿上省一sil...

2018-10-20 17:17:40 507

转载 快速幂与矩阵快速幂

转自:https://www.cnblogs.com/chsobin/p/8417356.html【快速幂】O(logn)时间复杂度#include<iostream>#include<cstdio>using namespace std;int qpow(int base, int n){ int ans = 1; while(n){ ...

2018-09-05 20:56:20 141

转载 算法之素数筛法

<1>方法一//判断是否是一个素数int IsPrime(int a){    //0,1,负数都是非素数    if(a <= 1){        return 0;    }    //计算枚举上界,为防止double值带来的精度损失,所以采用根号值取整后再加1,即宁愿多枚举一个,也不愿少枚举一个数    int bound = (int)sqr...

2018-08-25 15:07:33 1120

转载 浅谈线段树

数据结构——线段树O、引例A.给出n个数,n<=100,和m个询问,每次询问区间[l,r]的和,并输出。一种回答:这也太简单了,O(n)枚举搜索就行了。另一种回答:还用得着o(n)枚举,前缀和o(1)就搞定。那好,我再修改一下题目。B.给出n个数,n<=100,和m个操作,每个操作可能有两种:1、在某个位置加上一个数;2、询问区间[l,r]的和,并输出。回答...

2018-08-04 20:38:30 149

转载 树状数组简单易懂的详解

树状数组确实是个好东西啊,以前搞比赛的时候了解过它,会套用模版,但确没有深入理解这个东西,先学会用轮子,然后再学造轮子嘛,这段时间再回头研究了一下,发现二进制在算法中真的是的好东西,它可以使算法的时间复杂度降到n的二进制表示中的1相关,大家都知道,求一个二进制中的1的个数,这个时间复杂度为O(logn)O(logn)。有时候觉得树状数组难以理解,我觉得根本原因是:你还在用十进制的视角来看待树状...

2018-08-04 20:36:18 358

转载 LIS(最长上升子序列)问题的三种求解方法以及一些例题

摘要本篇博客介绍了求LIS的三种方法,分别是O(n^2)的DP,O(nlogn)的二分+贪心法,以及O(nlogn)的树状数组优化的DP,后面给出了5道LIS的例题。LIS的定义一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, a...

2018-07-27 21:12:11 534

转载 浅谈Trie树(字典树)

                                                                                           Trie树(字典树)一、引入字典是干啥的?查找字的。字典树自然也是起查找作用的。查找的是啥?单词。看以下几个题:1、给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。答...

2018-07-22 19:45:13 4487 1

转载 ST表算法详解

ST表算法详解(算是吧)ST表就是一个用来解决rmq(区间最值)问题的算法。 ST表不支持在线修改。 预处理时间复杂度O(nlogn),查询时间O(1)。 ST表算法详解(求最小值): 用mn[i][j]表示从j到j+2^i-1的最小值(长度显然为2^i)。 任意一段的最小值显然等于min(前半段最小值,后半段最小值)。 那么mn[i][j]如何用其他状态来继承呢? j到j+2^...

2018-07-03 21:08:49 553

转载 一步一步理解线段树

一 概述线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b]。二 从一个例子理解线段树下...

2018-06-30 16:14:44 193 1

原创 优先队列priority_queue详解

优先队列引入优先队列是一种特殊的队列,在学习堆排序的时候就有所了解,点“击”查看。那么优先队列是什么呢? 说白了,就是一种功能强大的队列。如果不太清楚队列,可以看看我这篇博客。它的功能强大在哪里呢? 四个字:自动排序。优先队列的头文件&&声明首先,你需要#include<queue>using namespace std;这两个头...

2018-06-30 16:14:16 357

空空如也

空空如也

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

TA关注的人

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