![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
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 评论 -
C++小程序:拯救公主(文字游戏)
介绍这是我之前在*州进行夏令营集训的时候一个满分大佬王永涵因为晚自习过于无聊打的一个程序。我只是做一个搬运工,没有具象的图片输出,“这应该是一个比较辣鸡的程序吧,超级粗糙”王永涵说。原创 2019-10-24 06:41:38 · 2174 阅读 · 0 评论 -
线段树的基本操作(入门必备)
线段树线段树算是一种较为常用的数据结构,它在落谷中的定位是树形结构:比如说有趣线段树的使用线段树既然是一个算法(←废话),那么它一定有自身的用处。经研究发现,计算最值的最佳算法是RMQ,O(1)的查询和O(nlogn)的预处理几乎是这类问题的时间复杂度缩短到最低,但是一旦进行了单点修改之后,就要重新进行一次处理。而计算区间和的最优解是前缀和算法,O(1)的查询和O(n)的预处理为此...原创 2019-09-17 18:43:44 · 700 阅读 · 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 · 533 阅读 · 0 评论 -
C++版贪吃蛇代码
虽然之前因为某些繁琐的小事耽误了一年,然后后来断断续续有开始写博文,但是毕竟之前的老底是在的,于是就寻思着自己打一个贪吃蛇游戏玩一玩,没想到还真就操作出来了(v1.1)。虽然有一点成就感,但是不至于太过兴奋(毕竟是单机的)。所以我从五六月的时候就去创作了一个人机对战版本(v1.2)的,然后陆续增加了双人对战和双机对战,稍加修饰了一下。如果你喜欢的话就请点个关注吧。废话不多说了,上代码。(v1...原创 2019-10-09 20:18:00 · 1347 阅读 · 1 评论