第一问记得开 long long。
然后链表维护搜索次序的时候的分类讨论,写的太难受了,大概是我太菜。
- 设钦定儿子
u 恰在儿子 v 前访问,则需要满足:u 未被钦定为最后一个访问的儿子(链表尾),v 未被钦定为第一个访问的儿子(链表头);
- 链表不能连成环;
- 需要钦定路径上所有点是它父亲所有儿子里最先 / 最后访问的,判掉冲突;
- 所以需要在每个位置都注意判掉,钦定出来的链表连接了头尾,但是有的儿子还没被连进去的情况;
- 同理需要注意,如果某次连接操作把所有儿子连到一起了,那么等价于钦定了头尾;
大概就能通过了。
这题思路似乎挺显然的,细节好像也不多,模拟赛没做出来,得加训。