2019年10月4日

Bellman-Ford算法及SPFA算法

摘要: Bellman-Ford算法能解决存在负权边的单源最短路径问题,还可以判断是否存在负回环 思路和dij一样 1.dis[i] 为源点s到点i的最短路径长度,初始化dis[i]=inf,dis[s] = 0; 2.枚举每一条边(v,u),若dis[u] > dis[v]+w[v][u],dis[u] 阅读全文

posted @ 2019-10-04 09:53 By_布衣 阅读(233) 评论(0) 推荐(0) 编辑

2019年9月25日

带权并查集

摘要: 深入理解带权并查集(例题+思考) 深入理解带权并查集(例题+思考) 深入理解带权并查集(例题+思考) 深入理解带权并查集(例题+思考) 本文链接:https://blog.csdn.net/sunmaoxiang/article/details/80959300 带权并查集(种类并查集)的简单总结( 阅读全文

posted @ 2019-09-25 20:03 By_布衣 阅读(100) 评论(0) 推荐(0) 编辑

2019年9月3日

KMP

摘要: 原文出处 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 1.nex 阅读全文

posted @ 2019-09-03 14:26 By_布衣 阅读(167) 评论(0) 推荐(0) 编辑

2019年9月2日

char函数

摘要: 字符串比较: strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。 字符串复制: strcpy, 阅读全文

posted @ 2019-09-02 16:53 By_布衣 阅读(758) 评论(0) 推荐(0) 编辑

dp--01背包,完全背包,多重背包

摘要: 模板 例题 hdu2602 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 using namespace std; 7 8 #def 阅读全文

posted @ 2019-09-02 14:42 By_布衣 阅读(122) 评论(0) 推荐(0) 编辑

2019年8月20日

最长回文子串

摘要: 阅读全文

posted @ 2019-08-20 10:14 By_布衣 阅读(64) 评论(0) 推荐(0) 编辑

2019年8月18日

dp--最长上升子序列LIS

摘要: 模板 dp[len]代表长度为len时,a[i]的值 可以使用二分查找优化 阅读全文

posted @ 2019-08-18 09:21 By_布衣 阅读(113) 评论(0) 推荐(0) 编辑

2019年8月17日

dp--最长公共子序列LCS

摘要: 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 核心思想 这张图片可以很好的理解lcs 例题 hdu1423 1 #inclu 阅读全文

posted @ 2019-08-17 16:37 By_布衣 阅读(103) 评论(0) 推荐(0) 编辑

Floyd-任意两点间最短路

摘要: 复杂度: O(v^3) 思想: DP 通过枚举中间点来优化它的时间复杂度 d[i][j][k]表示从i到j在节点只允许经过[0,k]时的最短距离 a. 如果最短路经过k点,则d[i][j][ k ] = d[i][k][k-1] + d[k][j][k-1] b. 如果最短路不经过k点,则d[i][ 阅读全文

posted @ 2019-08-17 09:41 By_布衣 阅读(163) 评论(0) 推荐(0) 编辑

2019年8月16日

Dijkstra-单源最短路

摘要: Dijkstra的介绍我就免了,相信点进来的都知道 Dijkstra算法和prim算法(求最小生成树)有许多相似之处,区别就是dis数组代表的含义不一样 初步学一个算法的时候推荐找一个最基本的题目,别敲别学,不然没什么效果 例题 hdu1874畅通工程续 不过这题有点坑:1.重边的处理2.起点与终点 阅读全文

posted @ 2019-08-16 15:37 By_布衣 阅读(138) 评论(0) 推荐(0) 编辑

树状数组

摘要: 1312 阅读全文

posted @ 2019-08-16 15:35 By_布衣 阅读(88) 评论(0) 推荐(0) 编辑

2019年8月15日

次小生成树

摘要: 就是求第二小的生成树 转最小生成树MST 方法类似,核心思想 次小生成树求最小生成树时,用数组 Max[i][j] 来表示 MST 中 i 到 j 最大边权求完后,直接枚举所有不在 MST 中的边,替换掉最大边权的边,更新答案 阅读全文

posted @ 2019-08-15 13:03 By_布衣 阅读(84) 评论(0) 推荐(0) 编辑

2019年8月13日

最小生成树MST

摘要: 不懂什么是最小生成树的可以看-->这个博客 Prim 适合点少 此算法可以称为”加点法“,每次迭代选择代价最小的边对应的点,加入到最小生成树中。 Kruskal 适合边少 此算法可以称为“加边法”,初始最小生成树边数为0,每迭代一次就选择一条满足条件的最小代价边,加入到最小生成树的边集合里。 (感觉 阅读全文

posted @ 2019-08-13 15:05 By_布衣 阅读(172) 评论(0) 推荐(0) 编辑

2019年8月12日

矩阵快速幂

摘要: 一、快速幂 快速幂是一种用于快速计算出(因为太大,通常需要对一个数取模)的算法。因为较为基础,在此不多做讲解。主要原理:,,。因为指数在每次运算中都会缩小一半,时间复杂度为。代码如下。 ll ksm(ll a, ll k){ ll res = 1; while(k) { if(k%2) res=re 阅读全文

posted @ 2019-08-12 14:25 By_布衣 阅读(167) 评论(0) 推荐(0) 编辑

2019年8月11日

单调栈

摘要: 附大佬博客: https://www.jianshu.com/p/882291e56f12 例题1: hdu1506 A histogram is a polygon composed of a sequence of rectangles aligned at a common base line 阅读全文

posted @ 2019-08-11 16:34 By_布衣 阅读(129) 评论(0) 推荐(0) 编辑

2019年8月9日

字典树

摘要: 阅读全文

posted @ 2019-08-09 22:38 By_布衣 阅读(80) 评论(0) 推荐(0) 编辑

线段树

摘要: 阅读全文

posted @ 2019-08-09 22:37 By_布衣 阅读(89) 评论(0) 推荐(0) 编辑

树状数组

摘要: 参考 模板 区间更新(建差分树) 例如对于下面这个数组 A[] = 1 2 3 5 6 9 D[] = 1 1 1 2 1 3 如果我们把[2,5]区间内值加上2,则变成了 A[] = 1 4 5 7 8 9 D[] = 1 3 1 2 1 1 a[n] = c[n];(单点查询) 阅读全文

posted @ 2019-08-09 22:37 By_布衣 阅读(66) 评论(0) 推荐(0) 编辑

priority_queue优先队列

摘要: 优先队列 priority_queue 详解 priority_queue <int> que;//默认从大到小 priority_queue < int,vector<int>,greater<int> > que;//从小到大 结构体 在优先队列中使用结构体的若干小结 阅读全文

posted @ 2019-08-09 22:05 By_布衣 阅读(109) 评论(0) 推荐(0) 编辑

1433223

摘要: 海岛Blog 挑战ACM编程是自由参与组。提供挑战题、水题、白书、紫书和蓝书等等…… kuangbin专题 专题一 简单搜索 专题二 搜索进阶 专题三 Dancing Links 专题四 最短路练习 专题五 并查集 专题六 最小生成树 专题七 线段树 专题八 生成树 专题九 连通图 专题十 匹配问题 阅读全文

posted @ 2019-08-09 10:30 By_布衣 阅读(462) 评论(0) 推荐(0) 编辑

2019年8月8日

set集合

摘要: set集合是c++ stl库中自带的一个容器,set具有以下两个特点: 1、set中的元素都是排好序的 2、set集合中没有重复的元素 常用操作: begin() 返回set容器的第一个元素的地址 end() 返回set容器的最后一个元素地址 clear() 删除set容器中的所有的元素 empty 阅读全文

posted @ 2019-08-08 17:29 By_布衣 阅读(126) 评论(0) 推荐(0) 编辑

并查集

摘要: 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在 阅读全文

posted @ 2019-08-08 15:54 By_布衣 阅读(113) 评论(0) 推荐(0) 编辑

LCA--最近公共祖先

摘要: 在线:处理 问一下 回答一下 离线:全部问完 处理 再全部回答 阅读全文

posted @ 2019-08-08 11:56 By_布衣 阅读(66) 评论(0) 推荐(0) 编辑

RMQ区间最值问题--ST表,线段树,树状数组

摘要: ST表 附一个大佬的博文: https://www.cnblogs.com/qq965921539/p/9608980.html 浅显易懂 例题 hihoCoder 1068 https://hihocoder.com/problemset/problem/1068 参考代码 1 #include 阅读全文

posted @ 2019-08-08 10:19 By_布衣 阅读(136) 评论(0) 推荐(0) 编辑

2019年8月7日

SG函数

摘要: 原文链接: (组合游戏)SG函数与SG定理详解 取石子问题 有1堆n个的石子,每次只能取{ 1, 3, 4 }个石子,先取完石子者胜利,那么各个数的SG值为多少? SG[0]=0,f[]={1,3,4}, x=1 时,可以取走1 - f{1}个石子,剩余{0}个,所以 SG[1] = mex{ SG 阅读全文

posted @ 2019-08-07 09:51 By_布衣 阅读(160) 评论(0) 推荐(0) 编辑

2019年8月6日

wythoff博弈

摘要: 威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品, 规定每次至少取一个,多者不限,最后取光者得胜。 阅读全文

posted @ 2019-08-06 11:24 By_布衣 阅读(96) 评论(0) 推荐(0) 编辑

bash博弈

摘要: 巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。 中文名巴什博弈外文名Bash Game 巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个, 最多取m个。最后取光者得胜。显然,如果n=m+1,那么由于一次最多只能取m 阅读全文

posted @ 2019-08-06 11:22 By_布衣 阅读(279) 评论(0) 推荐(0) 编辑

NIM博弈

摘要: 通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。 阅读全文

posted @ 2019-08-06 11:21 By_布衣 阅读(108) 评论(0) 推荐(0) 编辑

2019年8月2日

map映射

摘要: C++ STL中的map是以key排序的。 map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,后边我们会见识到 阅读全文

posted @ 2019-08-02 18:24 By_布衣 阅读(136) 评论(0) 推荐(0) 编辑

2019年7月31日

逆元

摘要: 1 2 3 扩展欧几里得 把a/b变成a*x,x为b的逆元; 费马小定理 例题 : hdu1576 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cm 阅读全文

posted @ 2019-07-31 09:27 By_布衣 阅读(99) 评论(0) 推荐(0) 编辑

2019年5月17日

油猴Tampermonkey离线安装流程(附文件)

摘要: 1.下载插件插件包,然后解压(解压到你想放插件的位置,其实任意位置都可以,记住解压的位置) 链接:https://pan.baidu.com/s/1aanhsb6ZlapnzBeBRtp3Hg 提取码:9iut 2.以谷歌浏览器为例:打开扩展程序 3.进去之后,右上角打开“开发者模式” 4.然后选择 阅读全文

posted @ 2019-05-17 12:31 By_布衣 阅读(10872) 评论(0) 推荐(1) 编辑

导航