感觉我们都被zrl吓到了……
回家好好想题,感觉最后一题还是不会
然而问了下gj,他第一句话就问我今天做题做得爽不爽……
T1
看上去比较难,然而一堆if就搞定了……
方法我就不说了,反正在当时看来是玄学的算法……
具体证明我还不是特别会……有些大佬会的话下面直接评论
然而我一开始还在拼命地想TlogN的算法……
但光看数据的话这似乎是可以的,没想到std说把数据放宽了……
T2
其实这道题想到了就不难了
我们可以想到,在一个连通块里,解是唯一的
因为在连通块中你知道至少n-1个关系(n为此连通块大小)
所以你就可以知道其他任意两组的关系
肯定不会出现存在三个都冲突的情况
所以可以用并查集来维护连通块,顺便记录一下它和它父亲是什么关系
当然二分图染色也可以
如果用并查集的话,那么要将吻合设为0,冲突设为1
判断的时候用异或就可以了(具体自己推推就出来了)
知道了连通块个数就很简单了(具体我不说了)
基本真正做过关押罪犯这道题的人应该都会写……
没做过的话自己去做做这道题,算法基本就是一样的
T3
两个线段树来维护我听懂了
有一步不是特别懂
我怎么在logN的时间里求出某一个点能到哪些点……
可能这个会了这题就会写了
但我也是第一次写这种两个线段树搞的东西……
等会了我再把这东西更新一下吧
小插曲:
最后一题不会,去问gj,他说他很忙
去问出题人,他说他要上课,明天回我……
一脸懵逼 看来不能好好学习了
总结
有些时候多做做题也是好的
比赛的时候要大胆猜测(比如第一题的玄学算法,尽管不会证,但是跑了一堆数据是对了,就默认它对了)