杭电多校2020第二场1001
杭电多校2020第二场1001
建议一边看代码一边理解会快一点哦
这个题目开始的时候,一直想用dfs做,做了五个小时还是错了。没想到用的是并查集!!!对于一个连通块来说,可以一直操作 min(a[i],是连通块内权值最小的那个点),然后最小的那些点就会变成0,此时可能会让连通块分裂成多个连通块。这种删除这个点得到多个连通块的情况不好处理。
可以反过来想:处理添加边把连通块融合的情况。那就从最大的点开始倒着添加点。首先每步刚开始的时候就加上这个点的亮度,再遍历这个点的每条边,如果加了这个边使得两个连通块融合,
原创
2020-07-24 11:31:15 ·
229 阅读 ·
0 评论