首先前两个题就是送的,20 分钟写完了。
然后 3 就是一个点对计数。
这个有两种想法,一种就是扫一遍,还有一种是固定出现两种路径的主体,然后对于这个东西计数。
第二种方法是不可避免的出现分类讨论的,写了第一种做法。
大概花了 15 分钟,用两个线段树维护,记录快节点和有两种方式的快节点。
因为两种方式的快节点如果能分裂那么慢节点也能分裂。
但是这里没有考虑到慢节点跟不上的情况,然后就会错,果断抛弃这一想法,这时过去一个小时。
然后想到对于这个主体计数,就是一个 i prei+1 prei preprei+1 的四个点。
这个做法调了很久没过,此时过去两个小时。
然后看了 4,直接秒了,就是先二分,然后剥去叶子,然后在剩下的集合上删掉一条链。
仔细思考之后也知道怎么判断一个链能不能删。
写了这个做法,花了半个小时,然后剩下的半个小时一直在调试这个做法。
后半个小时就写了 40+15 的暴力。
最后半个小时一直在调两个代码,没有调出来。