OVSolitario-io

导航

&思想

染色法
对于p1551亲戚,可并查集,这里考虑朴素染色法

Screenshot 2024-07-19 at 00.02.30

通过颜色来判断是否为同一宗族,颜色相同即同一个

最开始每个人都有一个颜色,当AB为亲戚时,则要将AB染成一个颜色

复杂度:O(数学公式: $ n^{2} $),因为每次操作可能都为O(n)
这里存在的优化:启发式合并

启发式合并
因为当前有将两群颜色不同的人,染为同一个颜色:每次选人少的那部分进行染色(合并到人多的那边去)
会优化一定的复杂度

染色法的复杂度明显过高,对其进行改进:
染色法改进:不去真的执行染色,而是在给B一个标记指向A,然后说其应染成A的颜色
Screenshot 2024-07-19 at 00.13.52

link 1 2,则将1,2连接,让2指向1,让3指向2····
意思为2应染为1颜色,3应染为2的颜色(则3最终应染成1的颜色),通过记录bin数组,来记录了每个点应该被染为的颜色,最终求出整个图的染色方法

bin[1] = 0是它的不要染色,另一种写法是它自己指向自己(则说明它应该被染成1自己这种颜色
Screenshot 2024-07-19 at 00.18.23

bin数组即为并查集

posted on 2025-09-27 10:22  TBeauty  阅读(10)  评论(0)    收藏  举报