会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
还能互相走到的芯片,构成无向图上的一个连通块。芯片连向自己,或者同一对端点写了多次,都不会让连通块变大或变小。每个连通块里,时标权重最大的芯片是时标源;权重并列时,编号更小的芯片是时标源。一次询问只需要回答这块芯片所在连通块的时标源编号。
- 用并查集维护连通关系。每一条双向链路都把两个端点合并到同一块。两端已经同块时直接跳过,自环和重复链路都落在这里。
- 查找代表元时把路径压平,合并时按秩把矮的一块挂到高的一块下面,这样一条长链也不会把查找拖成线性。
- 链路全部处理完以后,按编号从小到大扫描芯片。把当前芯片和它所在块已经记下的时标源比较:权重更大就换上它;权重相同则留下编号更小的。没有任何链路的芯片单独成块,时标源就是它自己。
- 对每次询问,先找到该芯片的代表元,再读出代表元上保存的时标源编号。