AcWing 2069. 网络分析
2021-05-15 20:30
                         标签:ret   width   路径压缩   ++   合并   传递   const   cst   并查集    原题链接 考察:并查集 思路:        很容易想到用并查集的根节点代表此集合的权值和.但是注意在结点合并的时候,会出现本不属于这里的权值.被路径压缩加到子结点上.        这里有两种处理方式:        一、建立虚点.  在x,y之上建立一个结点s,在路径压缩时就不会合并到y集合的权值k.       二、特殊处理x结点权值,在x权值和上减去y的权值和.        但是注意:直接这么路径压缩会使得1 2 4(样例)权值和计算错误.我们第一次合并可能会将r,p[x]的权值传递给x,但后面查询x的父节点后,又会将r的权值和再累加到x里.所以根据并查集压缩路径的结果,当枝条结点只有两个时,我们不进行权值合并,那么最后x的权值和结果是f[x]+f[p[x]].如果>2个,要符合前面的算式我们需要f[x] = f[x]+f[p[x]]因此路径压缩时可以累加父节点的权值.       最后还有一种特殊情况,就是p[x] = x.此时累加会使得结果重复.   AcWing 2069. 网络分析 标签:ret   width   路径压缩   ++   合并   传递   const   cst   并查集    原文地址:https://www.cnblogs.com/newblg/p/14665350.html


 1 #include