摘要: 这个题自从a了上面那道题之后就变得蛮水的。但是它的合并着实让我郁闷了一番。 考虑维护这样一个并查集: fa纪录它的父亲节点,up纪录它到根节点的距离。 那么根据每个节点mod 3的值,就可知道是那种动物。(换句话说,mod 3相同的动物,是一种动物……) 那么对于询问1 如果在同一个集合里,就计算它们的up mod 3 的值,如果相同就是真话。 如果不在同一个集合里,那这就默认是真话,把它俩合并。要跟据up的值算出根节点的关系,然后更新根节点的up值。 对于询问2, 如果在同一个集合里,计算mod 3 值,如果一个等于另一个加一,或者一个是2另一个是0(环的... 阅读全文
posted @ 2011-10-28 08:36 ZJerly 阅读(314) 评论(0) 推荐(0) 编辑