第二十三天(并查集)

今天完成题目:547,399,947 547:朋友圈

  • N名学生N个集合

  • 互为朋友的学生合并集合

399:除法求值

  • 每个集合父结点与子结点的边为权重

  • find返回从结点与父结点的比值

  • union的时候,传入两个结点的比值,从而获得新父亲结点与原父亲结点的比值

  • answer通过查找有无共同父亲来判断有无结果,并将两个结点与父结点的比值相除得到结果.

947:移除最多的同行或同列石头

  • 将每个点压缩为一维的,x=x,y=10000+y

  • 每个stones坐标表示将x与y合并起来

  • 合并后的集合数,即为图中的连接子树数量

  • 结点数-连接子图数量=结果

  • 结果在图上的意义为所有连接子图(非环)的边数量

最后更新于

这有帮助吗?