随笔分类 - ☺模板
摘要:N(1 ≤ N ≤ 1,000)个不同颜色的不透明矩形被摆放在了一个白色的宽A高B(1 ≤ A,B ≤ 10,000)的网格上,矩形的边与网格的边平行。所有的长方形都放置在网格内,所以我们会看到不同形状的各种颜色。 坐标系统的原点(0,0)设在这张白纸的左下角,而坐标轴则平行于网格边缘。求最后能看到
阅读全文
摘要:传送门 作为给dtx的妹子讲题的交换他给我讲的 果然线段树最可爱了w 扫描线可以用来求矩形的面积并… 一个平面上有一些有重叠的矩形,求他们的并集的面积。 直接放网上的图了x 对于每个矩形,将y坐标拆成两个修改操作(插入和删除),从下到上排序; 将x坐标unique离散化,从左到右排序,用线段树维护切
阅读全文
摘要:今天新写的高精度板子!神清气爽 HAI = High Accuracy Int
阅读全文
摘要:gate 前置知识 位运算常用方法 判断一个数字x二进制下第i位是不是1 return ((1<<(i−1))&x)?true:false 将一个数字x二进制下第i位更改成1。 x=x|(1<<(i−1)) 把一个数字二进制下最靠右的第一个1去掉。 x=x&(x−1) 判断一个数是否为2的幂 ret
阅读全文
摘要:int read() { char ch = getchar(); int x = 0, f = 1; while(ch < '0' || ch > '9') { if(ch == '-') f = -1; ch = getchar(); } while('0' <= ch && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); } retur
阅读全文
摘要:感谢jdr,ldl学长和yst$qwq$ 后缀数组,顾名思义,就是对于一个字符串的每一个后缀的数组。 比如对于字符串fatcat,其所有后缀如下: fatcat atcat tcat cat at t 其按照字典序排序结果如下: at atcat cat fatcat t tcat 一般来说,对于每
阅读全文
摘要:传送门 AC自动机(Aho-Corasick automaton)是一种优化的多模式串匹配的算法,它像是trie树和KMP的结合体。 这个算法分为三部分:建立trie树,求fail,匹配。 假设有cod,cos,ost,op几个单词。(这图画了好久好久好久) 在普通trie树的基础上,像kmp一样处
阅读全文
摘要:第一次写kmp是2月,写错但AC了...第二次是6月,才发现... 现在是8月,第三次 /cy 传送门 KMP (D.E.Knuth - J.H.Morris - V.R.Pratt) 也叫看…,是一种改进的字符串匹配算法,核心是在匹配失败后减少已经匹配过的部分重新匹配。 原理 KMP是通过一个f[
阅读全文
摘要:传送 Trie树就是字典树,前缀树...(无所谓啦 今天考试的时候想出来了trie树怎么写,的确是正解,然而那题爆零了(...) 还是找个trie树板子写一下吧 首先,结构体node,包括son[26]表示这个字母的编号,fin表示是否是一个单词的结尾。 插入新单词,设当前位字母为i,从根开始找,如
阅读全文
摘要:传送门 为了方便以后抄自己代码 如果一个点入队次数超过n次,说明有负环
阅读全文
摘要:传送门 SAT(Satisfiability)问题: 有n个$bool$变量,m个需要满足的条件,形如“xi为true || xj为false || xk为 false…”。 给每个变量赋值,使得所有条件得到满足。 SAT问题已被证明为NP完全,只能暴力枚举求解。 特别地,如果每个条件中约定的变量
阅读全文
摘要:传送门 这是一个莫队板子qwq 莫队是一种离线暴力算法,每次通过调整当前询问和上次询问的区间的不同的左右端点,并修改答案。 可以看出,调整的越少跑得越快,所以每次先把询问的左右端点排个序,按左端点分块,块相同的按右端点排序 (玄学) 代码如下 #include<cstdio> #include<io
阅读全文
摘要:传送门 最小费用最大流,就是在求最大流的前提下,使选出的路径费用最小。 每条边除了容量w[]外,还要记录一个单位流量费用co[]。 其实就是$dinic$的$bfs$和$SPFA$同时进行, 每次更新增广路时,保证选择的一定是费用最小的一条路径。 ($paopo$说这个用不了当前弧优化,所以我就没用
阅读全文
摘要:传送门 NOIP之前,我绝对不学网络流。 ——我 网络流可以解决这样一类问题:给定一个有向图,每条边有一个流量上限,求从源点到汇点所能运输的最大流量。 解决这类问题的一种算法叫做$dinic$。 一些性质 对于任意一个时刻,设c(u,v)为容量,f(u,v)为实际流量,则整个图G的流网络满足3个性质
阅读全文
摘要:传送门~ 树链剖分,顾名思义,就是把树分成链。 通过这个方法,可以优化对树上两点间路径、某一点子树的修改和查询的操作,等。 流程 $dfs1()$ 在这个函数中,要处理出每个节点的: 深度dep[] 父亲fa[] 大小siz[] 重儿子编号hson[] 一个节点的siz[],是包括它自己、它的儿子、
阅读全文
摘要:对于同余方程组: 𝑥 ≡ 𝑎1 (𝑚𝑜𝑑 𝑚1) 𝑥 ≡ 𝑎2 (𝑚𝑜𝑑 𝑚2) … 𝑥 ≡ 𝑎𝑛 (𝑚𝑜𝑑 𝑚𝑛) 若有 𝑚1, 𝑚2 … 𝑚𝑛 互质,可以用普通的中国剩余定理求解。 但若
阅读全文
摘要:传送门 二分图:设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 二分图匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条
阅读全文
摘要:关于线段树的一些算法的模板的汇总。 Luogu P3372 【模板】线段树 1 普通的线段树,区间加法,区间查询。 #include<cstdio> using namespace std; const int maxn = 100005; int n,m,x,y,flag; int l[4*max
阅读全文
摘要:三分查找和二分查找差不多,就是把一段区间平均分成三段而不是两段。 三分查找适用于凸函数,即有一个顶点,顶点两边单调的函数(比如二次函数)。 对于一段l~r的区间,把它分成l~L,L~R,R~r三段。 以顶点为最大值的情况为例, 若f(L)<f(R),则最高点在L~R或R~r中。 若f(L)>f(R)
阅读全文
摘要:Luogu P4716 【模板】最小树形图 最小树形图就是在有向图上,以某一点作为根的一棵最小生成树。 这个算法是基于贪心和缩点的思想。 步骤: (1)先求出最短弧集合E0(图上所有点的边权最小的入边的集合); (2)如果E0不存在,则图的最小树形图也不存在,跳出循环; (3)如果E0存在且不具有环
阅读全文

浙公网安备 33010602011771号