摘要: 种类并查集和带权并查集所产生的森林的区别 并查集可以将元素划分成若干个树,形成森林。 网络上对于种类并查集和带权并查集的划分并不严格,事实上二者对于信息处理后所产生的森林结构不同,而不同的森林结构有时候会对做题产生很大的影响。 本文介绍这一题,并从中分析二种并查集对于数据处理所形成的森林结构的区别。 阅读全文
posted @ 2020-07-20 17:35 popozyl 阅读(197) 评论(0) 推荐(0) 编辑
摘要: KMP算法 给定文本串A、模式串B,求模式串B在文本串A中出现的次数。 设文本串A的长度为n,模式串B的长度为m 暴力:二重循环+回溯 复杂度 O(n*m) KMP: 将复杂度优化到O(n+m) 本篇文章是我初学KMP算法所写,如果有错误欢迎指出 另外本文的KMP算法的实现方式较常规的实现效率似乎低 阅读全文
posted @ 2020-07-20 08:57 popozyl 阅读(193) 评论(0) 推荐(0) 编辑
摘要: B.Classical String Problem 题目下载 B_Classical_String_Problem.htm.zip 题解 如果将字符串S看作是首尾相接的一个环,那么M操作实际上只是不会对环造成任何影响,只是将环破成链之后的首字母的位置改变了。 例如 对White做$M \ 2$ 看 阅读全文
posted @ 2020-07-19 13:55 popozyl 阅读(105) 评论(0) 推荐(0) 编辑
摘要: C.Operation Love 链接:https://ac.nowcoder.com/acm/contest/5668/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 A 阅读全文
posted @ 2020-07-18 22:37 popozyl 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 种类并查集 普通的并查集维护的关系是: 朋友的朋友是朋友,即如果 A ~ B 是一对朋友, B ~ C 是一对朋友, 那么 A~C 是一对朋友。但如果我们需要维护这样一个关系“朋友的朋友是朋友,朋友的敌人是敌人,敌人的敌人是朋友”,普通的并查集就无能为力了。因此,需要引入种类并查集。 例题 动物王国 阅读全文
posted @ 2020-07-16 11:43 popozyl 阅读(979) 评论(0) 推荐(3) 编辑
摘要: 带权并查集 普通的并查集仅仅记录的是集合的关系,这个关系无非是同属一个集合或者是不在一个集合 带权并查集不仅记录集合的关系,还记录着集合内元素的关系或者说是集合内元素连接线的权值 普通并查集本质是不带权值的图,而带权并查集则是带权的图 考虑到权值就会有以下问题: 每个节点都记录的是与根节点之间的权值 阅读全文
posted @ 2020-07-16 10:30 popozyl 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 常规并查集 模板 #define Maxsize 100+1 int f[Maxsize]; void init(int n){ for(int i = 1; i <= n; i++) f[i] = i; } int find_f(int a){ if(f[a] == a){ return a; } 阅读全文
posted @ 2020-07-16 08:18 popozyl 阅读(132) 评论(0) 推荐(0) 编辑
摘要: G.Greater and Greater - 2020牛客暑期多校训练营(第二场) (位运算,二分查找) 题目下载:https://files.cnblogs.com/files/popodynasty/G.Greater_and_Greater.pdf.zip 题目大意 给定两个数列A、B,其中 阅读全文
posted @ 2020-07-14 10:07 popozyl 阅读(286) 评论(0) 推荐(0) 编辑
摘要: C++类库 <bitset> 引用时声明 #include <bitset> 运用此容器可以方便的对二进制数进行位运算 声明 bitset 对象 可以如下声明一个该类型变量: bitsetvarm (M) 其中varm为变量名。 N表示该类型二进制位数。如 N = 1,那么a = 0 或 1 ; N 阅读全文
posted @ 2020-07-14 09:31 popozyl 阅读(333) 评论(0) 推荐(0) 编辑
摘要: C.Cover the Tree 题解 题目链接 https://ac.nowcoder.com/acm/contest/5667/C 当做结论记下来好了。用最少条链来覆盖一棵树的时候,最优解为 s / 2 上取整. 方法为先找到一个非叶节点(度>=2)作为根(对于无根树),然后dfs找出所有的叶节 阅读全文
posted @ 2020-07-14 08:15 popozyl 阅读(243) 评论(0) 推荐(0) 编辑