🍕🏠🌋 当前时间是:

 

CF2002 D1/2

CF2002 D1/2

题意描述

给定一棵有根树和一个排列。每次操作交换排列里两个数,每次操作后回答这是否是一个合法的 DFS 序列。

做法

考虑排列里相邻两个数 \((a,b)\),如果 \(a\)\(b\) 的父亲,贡献为 1;如果 \(a\)\(b\) 的父亲的子树内,贡献也为 1。其他情况贡献为 0。

容易发现,当总贡献为 \(n-1\) 的时候,这是个合法的 DFS 序列。

可以 \(O(n+q)\) 维护。

posted @ 2024-08-12 11:43  zzafanti  阅读(53)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end