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

通过颜色来判断是否为同一宗族,颜色相同即同一个
最开始每个人都有一个颜色,当AB为亲戚时,则要将AB染成一个颜色
复杂度:O(数学公式: $ n^{2} $),因为每次操作可能都为O(n)
这里存在的优化:启发式合并
启发式合并
因为当前有将两群颜色不同的人,染为同一个颜色:每次选人少的那部分进行染色(合并到人多的那边去)
会优化一定的复杂度
染色法的复杂度明显过高,对其进行改进:
染色法改进:不去真的执行染色,而是在给B一个标记指向A,然后说其应染成A的颜色

link 1 2,则将1,2连接,让2指向1,让3指向2····
意思为2应染为1颜色,3应染为2的颜色(则3最终应染成1的颜色),通过记录bin数组,来记录了每个点应该被染为的颜色,最终求出整个图的染色方法
bin[1] = 0是它的不要染色,另一种写法是它自己指向自己(则说明它应该被染成1自己这种颜色

bin数组即为并查集
浙公网安备 33010602011771号