这道题网上已经有标准的解法了,就是反向并查集,但是很少看到能真正A掉的Python代码(C++最容易A)。主要原因可以归于以下四个原因:1、节点数目最大可以到1e9,因此并查集初始化父节点时,千万不要每个节点都去初始化,很容易超时或者爆掉内存,使用HashMap去解决,只去初始化关系中有的节点。2、被删除的关系可能原本就不存在,反向查询时删除操作是并查集中的添加操作,因此这种不存在的关系需要避免被添加到并查集中,没有这个操作的话结果会错误。3、由于某些节点在初始化关系中是不存在的,因此查询时也会出现查询节点不再HashMap中,这个需要单独写代码去单独判断因此会额外增加计算开销,我的做法是不去...