永无乡包含 nn 座岛,编号从 11 到nn ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 nn 座岛排名,名次用 11 到nn 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 aa 出发经过若干座(含 00 座)桥可以 到达岛 bb ,则称岛 aa 和岛bb 是连通的。 现在有两种...
【洛谷P3224】永无乡 并查集+Splay启发式合并 题目大意:给定 N 个点的图,点有点权,初始有一些无向边,现在有 Q 个询问,每个询问支持动态增加一条无向边连接两个不连通的点和查询第 X 个点所在的联通块中权值第 K 大的是哪个点。 题解:学会了平衡树的启发式合并。 以每个点建立一棵平衡树,需要加边时则...
洛谷P3224 [HNOI2012]永无乡 题解 splay tree 启发式合并,题目链接:https://www.luogu.com.cn/problem/P3224主要知识点是:树上启发式合并,即每次合并将小的树里面的每个点合并大大的树里面,时间复杂度$O(n\log^2n)$。同时需要开并查集维护集合关系。示例程序:#include
题目描述 永无乡包含 nnn 座岛,编号从 111 到 nnn ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 nnn 座岛排名,名次用 111 到 nnn 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 aaa 出发经过若干座(含 000 座)桥可以 到达岛
洛谷P3224 [HNOI2012]永无乡 解题报告 P3224 [HNOI2012]永无乡题目描述永无乡包含 nn 座岛,编号从 11 到nn ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 nn 座岛排名,名次用 11 到nn 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 aa 出发经过若干座(含 ...
洛谷P3224 [HNOI2012]永无乡 目录 题目描述 输入输出格式 输入输出样例 回到顶部 题目描述 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a ...
启发式合并就是暴力合并把小的合并到大的里,一个一个插进去。 并查集维护连通性,同时保证并查集的根就是所在Splay的根,这样能省去很多操作。 #include<cstdio>#include<algorithm>usingnamespacestd;inlineintread(){ints =0, w =1;charch =getchar();while(ch <'0'|| ch >'9'){if(ch =='-')w ...
洛谷P3224 [HNOI2012]永无乡 题面# 永无乡包含nn座岛,编号从11到nn,每座岛都有自己的独一无二的重要度,按照重要度可以将这nn座岛排名,名次用11到nn来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛aa出发经过若干座(含00座)桥可以 到达岛bb,则称岛aa和岛bb是连通的。
洛谷P3224 [HNOI2012]永无乡(Splay合并) 传送门 解题思路 若干平衡树,每次操作有两种 ,一是合并两个Splay ,二是查询某一个点所在的平衡树里的第k小的点的编号。 首先用并查集维护某个点在哪个平衡树里,然后rt[i]记录编号为i的平衡树的根。 每次合并时启发式合并,直接把小的树的每个点暴力insert到大树里。
洛谷.3224.[HNOI2012]永无乡(Splay启发式合并) 题目链接 查找排名为k的数用平衡树 合并时用启发式合并,把size小的树上的所有节点插入到size大的树中,每个节点最多需要O(logn)时间 并查集维护连通关系即可 O(nlogn*insert time) 据(主席)说按顺序插入能做到均摊O(1),中序遍历即可有序插入...