码迷,mamicode.com
首页 >  
搜索关键字:并查集 hdu    ( 34854个结果
kruskal【模板】
PART1 1.实现: 将每条边按权值从小到大进行排序 (要用并查集维护)容边上两点不在同一个树,则合并 2.时间复杂度: Kruskal 算法的时间复杂度由排序算法决定,若采用快排则时间复杂度为 O(Elog?E) 总时间复杂度为 O(ElogE+V α(V)) 【α(V)近似看作常数】 3.特别 ...
分类:其他好文   时间:2021-06-30 18:24:26    阅读次数:0
luogu P3452 [POI2007]BIU-Offices
两种写法,主要是复杂度的证明上比较有趣 1. 并查集+BFS 对于每个点,最多只会进入队列一次,这部分的复杂度是O(n) 每个点最多会在 for (int i = find(1); i <= n; i = find(i + 1))这段话中被访问 \(edge[i].size() + 1\) 次,因为 ...
分类:其他好文   时间:2021-06-28 17:55:38    阅读次数:0
题解 P3940 分组
Solution 对于字典序最小 , 从后往前扫即可满足 . 对于查询冲突 , 通过枚举完全平方数解决 . \(K=1\) 时 , 出现冲突时新分一组即可 . \(K=2\) 时 , 通过拓展域并查集来判断 . 我们把一个数拆成两个点 , 分别为黑点和白点 , 对于冲突的点 , 将它们的黑白点两两相 ...
分类:其他好文   时间:2021-06-21 20:03:20    阅读次数:0
HDU - 3949 XOR(线性基)
题目链接 #题目大意 求n个数的子序列的最大异或和。 #解题思路 求出n个数的线性基并排序,然后将k二进制异或上线性基中对应的代表元素即可。 #代码 const int maxn = 2e5+10; ll arr[maxn]; vector<ll> b; //b中存的每个二进制位的代表元素 void ...
分类:其他好文   时间:2021-06-02 13:29:58    阅读次数:0
做题集——(高精度+找规律)Friends
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5241 题面: Sample Input 2 0 2 Ouput Case #1: 1 Case #2: 1024 题意: M会使用n种语言,M的九个朋友会的语言都是M的子集,并且给出九个朋友会的语言的关系 ...
分类:其他好文   时间:2021-05-24 03:13:28    阅读次数:0
Rank HDU - 1704
原题链接 考察:floyd 思路: 很明显的传递闭包,但是我们直接敲板子上去会TLE.神级剪枝在floyd的第三重循环,如果g[i][k] = 0那么第三重循环没必要进行. 1 #include <iostream> 2 #include <cstring> 3 using namespace st ...
分类:其他好文   时间:2021-05-23 23:11:48    阅读次数:0
数据结构与算法之并查集的精简要点总结
并查集主要用于解决连接问题,其基本思想是为每一个数据都打上标签,当标签一致时则为一个集合。但是考虑到求并集的时候的效率问题,这里采用树形结构解决该问题,简单来说就是利用两个节点的根节点是否一致作为是否为一个集合的标志。 实现 查找:为防止该数据结构退化为链表,在每次查找过程中,选择进行路径压缩,使该 ...
分类:编程语言   时间:2021-04-29 12:09:20    阅读次数:0
Escape HDU - 3533
原题链接 考察:搜索 思路: 预处理有子弹和城堡的坐标,这部分除了暴力没有更好的办法.因为还有一个时间限制,所以需要三维数组.剩下就是BFS. 剪枝: 1.相同时间的拜访点不必再访问. 2.当离终点的曼哈顿距离>能量 不必再走下去. 注意:城堡处一定要预处理再判断子弹. 1 #include <io ...
分类:其他好文   时间:2021-04-22 16:32:51    阅读次数:0
并查集Union-find的优化问题
并查集可以有两个优化方案, 1,平衡性优化:对每个结点标记一个重量值,在进行union操作时,将重量小的添加到重量大的节点上。 2,路径压缩:在进行find操作时,顺便对路径进行压缩 private int find(int x) { while (parent[x] != x) { // 进行路径 ...
分类:其他好文   时间:2021-04-22 15:12:28    阅读次数:0
数据结构-模板-并查集(路径压缩+按秩合并)
所谓并查集就是将编号为1~n的n个对象划分为不相交集合,在每个集合中,选择其中的某个元素代表所在集合在这个集合中,并查集的操作有初始化,合并,查找。 #include<bits/stdc++.h> using namespace std; #define IOS ios::sync_with_std ...
分类:其他好文   时间:2021-04-20 15:31:02    阅读次数:0
34854条   1 2 3 4 ... 3486 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!