Evanyou Blog 彩带
摘要: 并查集 并查集是什么 并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行以下两种操作: 1,查询元素x和y是否属于同一组 2,合并元素x和y所在的组 但是并查集并不支持分割操作。 并查集的结构 并查集也是使用树形结构实现的,不过并不是二叉树。 初始的时候,每一个元素各为一个组,然后通过 阅读全文
posted @ 2018-03-10 14:48 HolseLee 阅读(1219) 评论(0) 推荐(0) 编辑
摘要: 堆与堆排序 堆 定义:堆是一颗完全二叉树,且满足子结点不大于父节点或不小于父节点,即小根堆和大根堆。堆的每一棵子树也都是一个堆。 下图为一个大根堆。 基本操作:最基本的操作包括插入(insert),向上调整(up),删除(delete),向下调整(down),查询(quary)。 插入insert: 阅读全文
posted @ 2018-03-06 21:36 HolseLee 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 高斯消元其实很好理解,就是我们平常解线性方程组用的消元法,不过在代码中实现需要用到矩阵,这里就只放代码,思路网上的大佬们已经讲的很清楚了 Code 阅读全文
posted @ 2018-02-27 17:22 HolseLee 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 啦啦啦,发个文纪念一下第一道在洛谷上A的黑题,一次性就过真是无比舒服~(虽然某些大佬说这题有点水……)题目其实思路不难,Tarjan缩点+LCA,不过因为是无向边,所以在Tarjan的时候做点标记就行了,不过第四个点会被卡,用vector存边就可以A掉了。另外输出用二进制这个应该没什么好 阅读全文
posted @ 2018-02-25 17:34 HolseLee 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 彩票 分析: 虽然题目标签上标的是Splay,但我一个蒟蒻至今也沒掌握平衡树,所以就索性一个暴搜,加一点剪枝就水过去了~ 代码: 阅读全文
posted @ 2018-02-24 15:48 HolseLee 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 实际上昨天大鸡哥已经讲过这题了,结果没记住,今天一道相似的题就挂了。。。。。。吃一堑长一智啊。 思路大致是这样:如果直接算发生越狱的情况会比较复杂,所以可以用间接法,用安排的总方案-不会发生越狱的方案就可以了。安排的总方案数很显然就是m^n,那么只需要求不会发生越狱的方案数就可以了。分析 阅读全文
posted @ 2018-02-24 15:41 HolseLee 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 洛谷的模板传送门 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> using namespace std; const int N= 阅读全文
posted @ 2018-02-22 19:02 HolseLee 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 这题的思路我觉得five20巨佬讲的已经非常清晰了,所以就推荐一下他的题解,我就只放代码了 阅读全文
posted @ 2018-02-07 16:55 HolseLee 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 看到数据范围其实就可以确定这是一道结论题。 首先分析,给定你的向量的两个坐标a,b有八种组合方式可以用,但实际上整理一下可以得出实际上只有五种,x/y ±2a,x/y ±2b,x+a,y+b,x+b,y+a,再就是什么都不做(废话。。。) 那么要想用a,b组合出x,y,那必须满足一下条件 阅读全文
posted @ 2018-02-06 21:14 HolseLee 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 字典树,顾名思义,是用来进行字符串查找的一种数据结构。试想一下,如果给你一堆字符串,问你其中每个字符串是否出现过,那怎么办?很容易,map,短小精悍。那如果给你一堆单词,再丢给你另一堆字符串,问你字符串中出现过哪些单词构成的前缀呢? 这里就可以用到trie树这种结构了。 首先假设所有字符串均为小写, 阅读全文
posted @ 2018-02-06 21:02 HolseLee 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题目传送门; 这个貌似是我这个蒟蒻做的第一道NOI系列的题了吧。。。这题的算法是树链剖分,其实基本上就是很常见的树剖+线段树,题目既然是要求每次安装或卸载改变的软件包的数目,那么就在每次操作前记录下线段树中根节点的权值,再进行修改,修改后的根节点的值与先前记录的值的差的绝对值就是改变的软件包的数目。 阅读全文
posted @ 2018-01-11 21:31 HolseLee 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 转载自https://www.cnblogs.com/fengzhiyuan/articles/7994428.html,转载请注明出处 Treap 简介 Treap 是一种二叉查找树。它的结构同时满足二叉查找树(Tree)与堆(Heap)的性质,因此得名。Treap的原理是为每一个节点 阅读全文
posted @ 2018-01-09 19:02 HolseLee 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 转载自https://www.cnblogs.com/yousiki/p/6147455.html,转载请注明出处 经典引文 空间效率:O(n) 时间效率:O(log n)插入、查找、删除 创造者:Daniel Sleator 和 Robert Tarjan 优点:每次查询会调整树的结构 阅读全文
posted @ 2018-01-09 16:32 HolseLee 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 恩,很明显的一个树剖题,配合树上差分其实也并不难,不过无奈蒟蒻树剖还没那么熟练,而且树上差分也做的少,所以这题愣是做了一中午。。。。。。唉,果然我还是太菜了。恩,具体做法在代码中解释吧: 总的来说,这是一道用来练习树剖和树上差分的好题。 阅读全文
posted @ 2018-01-06 14:27 HolseLee 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 先上题目传送门 最小路径覆盖其实是一类题目,一般用二分图匹配或者网络流都可以做。相关定理:最小路径覆盖数=顶点数-最大割(即最大匹配) 这道题的要求除了求出最小路径覆盖数之外还要求输出每一条路径,这里蒟蒻用的是最简单粗暴的深搜,从每一个路径覆盖的起点开始一个个搜索直到输出所有点。 奉上用Dinic算 阅读全文
posted @ 2017-12-30 10:48 HolseLee 阅读(263) 评论(0) 推荐(0) 编辑