02 2020 档案

摘要:codeforces 1272 F. Two Bracket Sequences(三维dp + bfs) 题目大意 输入两个括号序列 s,t(不一定合法),你需要构造一个尽可能短的合法括号序列使得s,t 都是这个序列的子序列(子序列意味着不用连续) 解题思路 表示匹配到 的第 个字符,匹配到 的第 阅读全文
posted @ 2020-02-12 21:21 yhsmer 阅读(227) 评论(0) 推荐(0)
摘要:「网络流24题」餐巾计划问题 "洛谷 1251 餐巾计划问题" 题目描述 Description 一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同。假设第 i 天需要 ri块餐巾(i=1,2,…,N)。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费 阅读全文
posted @ 2020-02-09 11:22 yhsmer 阅读(149) 评论(0) 推荐(0)
摘要:数组模拟栈和队列 不开$O_2$优化时,数组效率远高于STL,如果开$O_2$效率则差不多 栈 普通队列 循环队列+双端队列 阅读全文
posted @ 2020-02-09 10:22 yhsmer 阅读(196) 评论(0) 推荐(0)
摘要:AC自动机 Ac自动机=Trie+Kmp Kmp处理的是某个单词在文章中是否出现,出现次数,出现位置等问题,Ac自动机处理的是一堆单词在文章中是否出现,出现次数,出现位置等问题。 Ac自动机通过将一堆单词存储在Trie树中,并且对树上的每个节点建立失配指针 (类似KMP对单词的每个字母建立失配指针) 阅读全文
posted @ 2020-02-07 14:50 yhsmer 阅读(138) 评论(0) 推荐(0)
摘要:伸展树 Splay 维基百科上称为伸展树,但是国内好像一般叫平衡树,是众多平衡树中比较优秀的一种。 平衡树左旋右旋不会影响中序遍历顺序。 一棵平衡树的中序遍历顺序是值递增排序的,相当于从小到大到大排了一次序。 平衡树的作用: 平衡树其实就是一棵二叉搜索树,set和map都是平衡树实现。 一棵二叉搜索 阅读全文
posted @ 2020-02-06 14:08 yhsmer 阅读(174) 评论(0) 推荐(0)
摘要:[Acwing 256] 最大异或和 (可持续化Trie) 可持久化前提:本身的拓扑结构不变(也就是结构不变) 每个版本最多只开辟一条链的空间 题意: 给定一个非整数序列a,初始长度为N, 支持两种操作: 1. ”A x”:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大1。 2. ”Q 阅读全文
posted @ 2020-02-05 14:02 yhsmer 阅读(211) 评论(0) 推荐(0)
摘要:欧拉路径和欧拉回路 [toc] 欧拉路径:从源点出发,经过所有的边一次(点可以重复通过但是边只能走过一次) 欧拉回路:从源点出发,经过所有的边一次,最后回到源点(点可以重复通过但是边只能走过一次) 1. 对于无向图,所有边都是连通的。 (1)存在欧拉路径的充分必要条件:度数为奇数的点只能有0或2个。 阅读全文
posted @ 2020-02-04 15:08 yhsmer 阅读(448) 评论(0) 推荐(0)
摘要:二分图 最大独立集 最大独立集:选出最多的点,使得选出的点之间没有边 在二分图中: 求最大独立集 (n m个点) $\Leftrightarrow$去掉最少的点,将所有的边都破坏掉(m个点) $\Leftrightarrow$找最小点覆盖(m个点) $\Leftrightarrow$找最大匹配(m个 阅读全文
posted @ 2020-02-03 21:03 yhsmer 阅读(228) 评论(0) 推荐(0)
摘要:二分图 最小点覆盖 定理: 最大匹配含的边数=最小点覆盖的点数=总点数 最大独立集=总点数 最小路径覆盖 匹配:任意两条边没有公共端点的边的集合称为图的一组匹配 最大匹配数:在二分图中,包含边数最多的一组匹配 最小点覆盖:在二分图中,求一个最小的点集S,使得图中任意一条边都至少有一个端点属于S "A 阅读全文
posted @ 2020-02-03 20:54 yhsmer 阅读(524) 评论(0) 推荐(0)
摘要:无向图的双连通分量(待更新) [toc] 边的双连通分量 1. 边的双连通分量e bcc: 极大 (不存在包含该连通快,且点数比该连通块多的另外一个连通块)的不含桥的连通块 桥:指一条边,如果删除这条边,整个图会变得不连通。 充要条件:任意一条边都包含在至少一个简单环中。 性质: 不管删掉哪条边,整 阅读全文
posted @ 2020-02-03 12:01 yhsmer 阅读(303) 评论(0) 推荐(0)
摘要:有向图强连通分量 Tarjan算法: 强连通分量的发现其实是从尾部开始的,像下图,从1开始遍历,遍历到2的时候,再遍历到3,3没有出边,此时发现 ,执行 循环,将3自己构成的强连通分量编号为1,再将3弹出栈,此时栈中只剩下1和2。递归从3返回到2,不满足 ,此时返回到1,满足 ,将1所在强连通分量编 阅读全文
posted @ 2020-02-02 13:23 yhsmer 阅读(190) 评论(0) 推荐(0)
摘要:最近公共祖先lca [toc] 在线 倍增法:预处理$O(nlogn)$,查询$O(logn)$ $fa[i][j]$表示从$i$开始,向上走$2^j$步所能走到的节点。$0 include using namespace std; const int N=40010,M=N 2; int n,m; 阅读全文
posted @ 2020-02-01 09:06 yhsmer 阅读(137) 评论(0) 推荐(0)