自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吾谁知

一个蒟蒻又秃头的高三学生

  • 博客(11)
  • 问答 (1)
  • 收藏
  • 关注

原创 KMP与AC自动机

KMP算法介绍 KMP算法是用来处理字符串匹配问题的。也就是给你两个字符串,你需要回答B串是否是A串的子串。我们称等待匹配的A串为主串(母串),用来匹配的B串为模式串。 解决这类问题,通常是枚举从A串的什么位置开始与B串匹配,然后验证是否能够匹配。这种朴素算法的时间复杂度为O(nm)。虽然多数情况下枚举的复杂度是可以接受的,

2019-11-12 20:11:39 311

原创 最小生成树&次小生成树算法精讲

最小生成树定义最小生成树,是在一个n点边的强连通无向图中,边权值之和最小的n点n-1条边的强连通量(树),一般情况下可以与并查集同解,常见的使用prim和kruskal。性质MST性质:设G=(V,E)是一个连通网络,U是顶点集V的一个非空真子集。若(u,v)是G中一条“一个端点在U中(例如:u∈U),另一个端点不在U中的边(例如:v∈V-U),且(u,v)具有最小权值,则一定存在...

2019-10-31 21:32:25 2268

原创 线段树的基本操作(入门必备)

线段树线段树算是一种较为常用的数据结构,它在落谷中的定位是树形结构:比如说有趣线段树的使用线段树既然是一个算法(←废话),那么它一定有自身的用处。经研究发现,计算最值的最佳算法是RMQ,O(1)的查询和O(nlogn)的预处理几乎是这类问题的时间复杂度缩短到最低,但是一旦进行了单点修改之后,就要重新进行一次处理。而计算区间和的最优解是前缀和算法,O(1)的查询和O(n)的预处理为此...

2019-09-17 18:43:44 668

原创 C++小程序:拯救公主(文字游戏)

介绍这是我之前在*州进行夏令营集训的时候一个满分大佬王永涵因为晚自习过于无聊打的一个程序。我只是做一个搬运工,没有具象的图片输出,“这应该是一个比较辣鸡的程序吧,超级粗糙”王永涵说。

2019-10-24 06:41:38 2088

原创 三种常用最短路的分析优化

目录前言问题基本类型算法解析Floyd前言最短路分三种算法,分别是Floyd,dijkstra,spfa。不同于其他算法的事,最短路的三种算法全都要求掌握。Floyd是多源最短路算法,时间复杂度O(n^3)。dijkstra与spfa都是单源最短路算法,但dijkstra不支持负权,spfa容易被卡常数。另外再提一句,没有堆优化的spfa不如dijkstra。问题基本类型求解最短路经...

2019-10-18 20:03:45 477

原创 C++版贪吃蛇代码

虽然之前因为某些繁琐的小事耽误了一年,然后后来断断续续有开始写博文,但是毕竟之前的老底是在的,于是就寻思着自己打一个贪吃蛇游戏玩一玩,没想到还真就操作出来了(v1.1)。虽然有一点成就感,但是不至于太过兴奋(毕竟是单机的)。所以我从五六月的时候就去创作了一个人机对战版本(v1.2)的,然后陆续增加了双人对战和双机对战,稍加修饰了一下。如果你喜欢的话就请点个关注吧。废话不多说了,上代码。(v1...

2019-10-09 20:18:00 1303 1

原创 lca完美解答

首先还是老样子,观察一下lca的分类:​​​​​​​​emmmm,真好。关于树上距离很明显就不用再多说了,那么就直接开始LCA的算法详解↓其次对于lca,算是OI中比较重要的一种算法了,首先先说一下第一种解法转RMQ解首先,在你看这个解法之前,你必须要保证​​理解ST的RMQ算法→→→→→传送门​​lca(最近公共祖先):在有根树当中,节点u和v的公共祖先中最小的那一个点。比...

2019-04-30 13:12:38 208

原创 RMQ算法详解之ST

RMQ问题:区间最小值问题(也可以解决区间最大值问题)解决算法:Sparse - Table算法,简称ST,基于动态规划求区间最值的算法ST算法分为预处理和查询两部分首先定义数组:我们用定义 maxx[i][j] 为从 i开始的,长度为2^j的区间里面的最大值,Amin[i][j]为从i开始,长度为2^j的区间里面的最小值预处理首先我们对于区间的预处理是将长度为2^j...

2019-04-18 16:59:04 191

原创 tarjan的部分讲解及有关证明解答

LCA(Tarjan)分类,使每个结点都落到某个类中,到时候只要执行集合查询,就可以知道结点的LCA了。对于一个结点u.类别有:以u为根的子树、除类一以外的以f(u)为根的子树、除前两类以外的以f(f(u))为根的子树、除前三类以外的以f(f(f(u)))为根的子树……类一的LCA为u,类二为f(u),类三为f(f(u)),类四为f(f(f(u)))。这样的分类看起来好像并不困难。但关...

2019-04-13 14:15:13 307

原创 关于背包的几种常见题型

关于01背包,本意是给定N件重量为m[i]、价值为w[i]的物品和承重为V的背包,求在背包承重范围内接受物品的最大价值。很明显,01背包的特点就是每件物品只有一件,选择放/1或者不放/0。

2019-04-02 12:59:22 340

原创 简析 区间DP

一.什么是区间DP?顾名思义:区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。二.伪代码:for (int len = 2 -> n) //枚举长度{ for (int i = 1 -> n-len+1) //枚举起点 { int end = i+len-1...

2019-03-26 13:17:34 188

空空如也

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

TA关注的人

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