并查集
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
并查集
father[i]表示i的父亲节点,注意不是祖先节点! 在搜寻祖先节点过程中将父亲更新为当前祖先以便加速对不同祖先的统计 ,但注意不是所有点都改了,且并未改成最终祖先!所以father值只是其中一个祖父 注意每次查找祖先要更新fa[x],否则每次都递归查询很可能超时!int father[1000010];void init(int n){ far(i,0,n) ...原创 2019-06-10 13:11:28 · 121 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2)
D. Gourmet choicetheme:给定两堆物品,第一堆有n个,第二堆有m个,现给定n*m的矩阵,矩阵仅由>、<、=组成,表示第一堆的第i个物品的价值>/</=第二堆的第j个物品。现让你用最少的数字给这n+m个物品编号,使得序号满足矩阵中的大小关系。solution:如果没有=的话,那就是裸的拓扑排序,有=的话,我们可以先用并查集将价值相等的物品归为一个节...原创 2019-07-25 21:45:54 · 182 阅读 · 0 评论 -
Codeforces Beta Round #9 (Div. 2 Only)
*C. Hexadecimal's Numberstheme:给定数字n,求[1,n]中只由字符0或1构成的数字个数。1<=n<=1e9solution:只由01组成的数为:110 11100 101 110 1111000 1001 1010 1011 1100 1101 1110 1111...可以看出下一行为上一行每个数*10或*10+1的结果。所以...原创 2019-08-06 23:17:50 · 135 阅读 · 0 评论 -
牛客练习赛50
tokitsukaze and Hash Tabletheme:给定n个数,按hash方式依次插入从0~n-1的格子里,具体为如果x%n位上还没有填上数,则插入x,否则依次往后找到第一个空位置插入x.输出每个位置上的数。1≤n≤10^6,0≤x≤10^9solution:直接暴力的话很可能超时o(n^2),考虑用并查集维护空位置,对于每个数x,将它插入idx=Find(x%n)的位置,再合...原创 2019-08-25 15:39:39 · 135 阅读 · 0 评论