摘要: 单调队列的定义与单调栈的定义基本相同,只是在使用的时候可以支持双端队列 模板题 这个题的思路很简单,但是实现起来并不好写. 总结概括起来就是:求最大值时,维护一个单调递减的队列,队首的元素就是答案,如果遇到了一个比队尾元素大的就从队尾开始弹出元素,直到队列为空或者队列中的一个元素比当前元素大.求最小 阅读全文
posted @ 2020-10-23 09:42 czyczy 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 原题链 单调栈,顾名思义就是存储在栈中的元素是具有单调性的(单调递增或单调递减),根据不同的要求进行维护 来看看洛谷的板子题.题目要求找第一个比当前数大的数的序号. 一开始我手推了一下,发现了如何实现单调栈,拿样例来看:栈里面先$push$进去$1$,接着读取到了$4$,发现它比栈顶元素大,就弹出$ 阅读全文
posted @ 2020-10-22 21:23 czyczy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 大佬的博客 原题链 代码里的注释比较多,还算详细,将就着看吧 #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <limits.h> usin 阅读全文
posted @ 2020-10-22 19:55 czyczy 阅读(138) 评论(0) 推荐(1) 编辑
摘要: [笔记]树链剖分 算法概述 ​ 树链剖分就是把一棵树分成几条不相交的链来做. 变量定义 重儿子:某个节点(非叶子节点)的子树中,节点个数最多的子树的根节点(即与这个点相连的点)就是这个点的重儿子. 轻儿子:对于一个非叶子节点,它的儿子中非重儿子的剩下所有儿子就是轻儿子,也就是说叶子节点没有轻儿子或重 阅读全文
posted @ 2020-10-20 16:52 czyczy 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 原题链 思路:由于操作数很小,所以其实大部分的点是不会被修改的,所以预处理出那些永远不会被修改的点,放到并查集里,接着就可以暴力了. #include<bits/stdc++.h> using namespace std; int exist[5010][5010],x[1000010],y[100 阅读全文
posted @ 2020-10-20 08:20 czyczy 阅读(97) 评论(0) 推荐(0) 编辑
摘要: [笔记]差分约束系统 算法用途 ​ 当题面给出许多形如$x_i - x_j ≤ c_k(c为常数)$的不等式时,并让你求出一组满足条件的解时,就可以运用差分约束系统. 算法描述 ​ 首先,我们对不等式进行变形,变成$x_i ≤ x_j + c_k$的形式,这时我们可以发现,这和求最短路时的式子(\( 阅读全文
posted @ 2020-09-13 22:06 czyczy 阅读(118) 评论(0) 推荐(0) 编辑
摘要: [笔记]tarjan+缩点 算法用途: ​ tarjan可以求强连通分量,缩点则是将一个强连通分量缩成一个点 tarjan 概念 ​ 1.有向图的强连通分量:再有向图$G$中,如果两个顶点$V_i,V_j$间有一条从$V_i$到$V_j$的有向路径同时还有一条从$V_j$到$V_i$的有向路径,则称 阅读全文
posted @ 2020-09-06 20:16 czyczy 阅读(456) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-08-27 14:19 czyczy 阅读(0) 评论(0) 推荐(0) 编辑
摘要: [笔记]网络流--最大流问题 原题链 算法用途 ​ 解决网络流最大流问题,一般使用的是EK算法或是Dinic算法,由于Dinic的复杂度更优秀,所以我用的是Dinic,这里也只讲这个算法EK不会啊 问题描述 一.几个概念 ​ 1.网络:一个网络 $G = (V,E)\(是一张有向图,图中每条有向边\ 阅读全文
posted @ 2020-08-27 10:58 czyczy 阅读(239) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-08-25 14:18 czyczy 阅读(2) 评论(0) 推荐(0) 编辑