![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CSP
Cin.白术
若有来生,我愿为树,一叶之灵,窥尽全秋。
展开
-
KMP与AC自动机
KMP算法介绍 KMP算法是用来处理字符串匹配问题的。也就是给你两个字符串,你需要回答B串是否是A串的子串。我们称等待匹配的A串为主串(母串),用来匹配的B串为模式串。 解决这类问题,通常是枚举从A串的什么位置开始与B串匹配,然后验证是否能够匹配。这种朴素算法的时间复杂度为O(nm)。虽然多数情况下枚举的复杂度是可以接受的,原创 2019-11-12 20:11:39 · 428 阅读 · 0 评论 -
最小生成树&次小生成树算法精讲
最小生成树定义最小生成树,是在一个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 · 2802 阅读 · 0 评论 -
关于背包的几种常见题型
关于01背包,本意是给定N件重量为m[i]、价值为w[i]的物品和承重为V的背包,求在背包承重范围内接受物品的最大价值。很明显,01背包的特点就是每件物品只有一件,选择放/1或者不放/0。原创 2019-04-02 12:59:22 · 351 阅读 · 0 评论 -
简析 区间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 · 206 阅读 · 0 评论 -
三种常用最短路的分析优化
目录前言问题基本类型算法解析Floyd前言最短路分三种算法,分别是Floyd,dijkstra,spfa。不同于其他算法的事,最短路的三种算法全都要求掌握。Floyd是多源最短路算法,时间复杂度O(n^3)。dijkstra与spfa都是单源最短路算法,但dijkstra不支持负权,spfa容易被卡常数。另外再提一句,没有堆优化的spfa不如dijkstra。问题基本类型求解最短路经...原创 2019-10-18 20:03:45 · 534 阅读 · 0 评论 -
线段树的基本操作(入门必备)
线段树线段树算是一种较为常用的数据结构,它在落谷中的定位是树形结构:比如说有趣线段树的使用线段树既然是一个算法(←废话),那么它一定有自身的用处。经研究发现,计算最值的最佳算法是RMQ,O(1)的查询和O(nlogn)的预处理几乎是这类问题的时间复杂度缩短到最低,但是一旦进行了单点修改之后,就要重新进行一次处理。而计算区间和的最优解是前缀和算法,O(1)的查询和O(n)的预处理为此...原创 2019-09-17 18:43:44 · 700 阅读 · 0 评论