算法

单调队列

单调队列是一种数据结构。 随着区间的向右滑动,区间[i,j)变为[i+1,j+1); 如果a[i]是不是原区间最大值,那么新区间的最大值就是max(q.front(),a[j]); 如果a[i]是原区间最大值,那么新区间最大值就是max...

c++输入挂

普通版: ios::sync_with_stdio(0); 加强版 inline void scan_d(T &ret) { char c; ret = 0; while ((c = getchar()) < '0' || c > '9'); while (c >= '0' && c &l...

基于ST表的RMQ算法

基于ST表的RMQ算法可以在O(1)的时间复杂度内计算出一个区间内的最值。 基本思想是将一段长度中的最值保存下来。查询的时候直接返回。避免了常规算法中的一次一次比较的操作。 详细请参考书籍:《算法竞赛入...

好文章搜集

经常在学习算法的过程中看见很多好文章,将链接保存至此,方便以后查看 CS自学指南 计算机专业学习路线 KMP算法详解 写了ACM的入门之路 编程进阶 - Cifer - 博客频道 - CSDN.NET [kuangbin带你飞]专题1-...

[转]图的理论基础

https://wangkuiwu.github.io/2013/04/05/graph-thesis/   图的基本概念 1. 图的定义 定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常被成为"顶点(vertex)",而点与...

Prim算法

https://www.cnblogs.com/skywang12345/p/3711506.html 普里姆算法介绍 普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。 基本思想 对于图G而言,V是所有顶点的集合;现在...

Kruskal 最小生成树算法

一个非常好的GIF演示图 算法步骤说明   新建图G,G中拥有原图中相同的节点,但没有边 将原图中所有的边按权值从小到大排序 从权值最小的边开始,如果这条边连接的两个节点于图G中不...