并查集
文章平均质量分 54
timidcatt
永远不要放弃战斗
展开
-
G. Counting Graphs Codeforces Round 891 (Div. 3) 1857G
因为我们已经算出了每个位置能加边的种类数,所以我们现在只要算出有多少个位置能加边即可,设我们当前遍访问的边的两个端点分别为u,v,我们要加的边应该一个端点在u的子树上,另一个在v的子树上,在我们当前确定的边权和位置条件下,u的子树上的每一个点都可以向v的子树上的每一个点建边,除了我们本身正在访问的边,总的位置数就是size[u]*size[v]-1,每一条边提供的贡献也就是。题目大意:给出一棵n个点的边权树,问有多少个边权最大不超过s的图的最小生成树是这棵树。原创 2023-08-10 10:41:41 · 214 阅读 · 0 评论 -
C. Phase Shift codeforces1735C
思路:因为最后26个字母要形成一整个环,所以我们在排前25个字母时肯定不能有环,所以我们用一个fa数组储存b中字母到a的映射,用类似于并查集的方法递归查找一个字母的根字母,我们在25个字母排好之前,每输入1个字母就从a到z遍历26个字母,检查遍历到的字母和输入的是否成环,不成环且没排过的字母就建立映射,如果已经排好了25个字母,那么就不需要考虑是否成环,直接找到还没有排过的那个字母即可,同时构建从a到b的映射,如果遇到拍过的字母就直接输出。原创 2022-10-27 21:52:32 · 348 阅读 · 0 评论