并查集-区间染色

楼下老哥的并查集操作好是巧妙,但是并没有讲具体如何用并查集来

覆盖区间以至于我查了好多资料才搞明白。。。(也许是因为我⑨)

所以,在此将并查集实现这题的原理讲一讲。


有如下问题:

长为的序列,开始均无颜色,

个操作,每次将的数全染成色,

求最终的序列。

我们考虑将染色反着来,则一个数若被染色一次,

则这就是它的最终颜色,不会改变。

所以下次若在遇到这个数则需要跳过,

也就是对已经染色的区间,我们令其中的所有数都有一个指针,

以指向右边第一个还没有操作的数。

于是我们令表示右边(包括本身)第一个没有染色的数,

染色后,令,

之后就是正常的并查集操作了。


然后这题是个特例,染色虽然是正着来的,但染的颜色全是一种,

只存在,染一次则以后不变色,所以也可用这种方法做。

全部评论

相关推荐

12-15 14:25
云南大学 Java
lei22:入职可能会看学信网,最好别伪装,这个简历找实习肯定是够的,肯定会有收 28 届实习生的公司的,多投就行
点赞 评论 收藏
分享
12-19 15:04
门头沟学院 Java
小肥罗:hr爱上你了,你负责吗哈哈
点赞 评论 收藏
分享
12-27 22:28
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务