题意:有两个人一个叫TT的男孩一个叫FF的女孩,这个叫TT的男孩会经常叫这个女孩一起玩一个游戏,这个有些是这样的,随便写一个数列,现在TT会选择一个区间,然后让FF计算这个区间里面所有数的和,这是一个非常非常无聊的游戏,于是FF准备捉弄一下TT,有时候她会故意计算出来一个错的答案,当然TT也比较聪明,他会发现这个答案跟以前的答案会有冲突,那么问题来了,有多少话是假的呢???
这大概是我做的第一道带权并查集的题目,然后今天看了一下午的题解愣是还有一个推公式的地方没看懂,还好在我快要放弃的时候,出现了这篇博客
先说下我对带权并查集的理解,何为带权?我们回顾一下最基本的并查集,在做这类的题目的时候,是不是只要判断当前给出的两个节点是不是在同一个集合里面,如果不是只要进行合并操作就ok啦。带权并查集就是每个节点还带有了权值,这个权值可以有很多含义,(比如说价值,重量,也可以是这题所描述的区间的和),在对基本并查集操作的时候,同时对权值也进行更新就ok啦。
然后重点说一下这题的思路:
1. 什么时候会矛盾,就是题中所描述的错误
解:就是当题目中给出了一个区间以及这个区间的和的同时我们能够利用之前给出的数据计算出这个区间的和,然后如果两者不同,就说明当前给出的数据是有错的。
怎么将题