网站首页
编程语言
数据库
系统相关
其他分享
编程问答
ABC372E
2024-10-07
abc372E K-th Largest Connected Components
有N个顶点的无向图,最初没有边,接下来有Q组询问,格式如下:1uv:在顶点u和v之间加一条边;2xk:问与顶点v连通的分量中,顶点编号第k大的是谁?如果不存在,输出-1.1<=N,Q<=2E5,1<=u<v<=N,1<=x<=N,1<=k<=10分析:由于k比较小,直接用vector维护连通分量的顶点集合,在合并时,如果顶点数超过k,
2024-09-23
题解:AT_abc372_e [ABC372E] K-th Largest Connected Components
题意给出\(q\)个操作。将\(u\)和\(v\)连边。问\(u\)所在的连通块中编号第\(k\)大的点。思路连通块很容易想到并查集,求第\(k\)大可以用平衡树(虽然赛时没看到\(k\le10\)),合并时将信息从将小的连通块合并到大的连通块,这样可以减少时间复杂度。什么?你不会写平衡
2024-09-22
题解:AT_abc372_e [ABC372E] K-th Largest Connected Components
博客内食用更佳这道题的\(k\le10\)其实没什么用,代码区别仅在于手写平衡树和使用内置容器。这道题让查询与一个节点相连的所有点的信息,所以不难想到并查集。又因为让查询第\(k\)大,所以不难想到平衡树和线段树启发式合并。至此思路明显。我们对并查集中的每个节点开一个平