题面太形式化了!
我!根!本!读!不!懂!
这题想要拿分必须转化题面。
初步转化
他只给了我们 \((p_{a_i},p_{b_i})\),然后让我们去找最小的 \(p\)?
没给我 \(a_i,b_i\)?\(a_i,b_i\) 不用刻意构造出来,我们只需要时刻保证 \(a_i,b_i\) 的限制就可以了。
假设我们拿到了最终的排列 \(p\),那么 \((p_{a_i},p_{b_i})\) 相当于第 \(a_i\) 个点向第 \(b_i\) 个点连边,钦定边只能上侧连,那么 \(a_i<a_j<b_i<b_j\) 的意思是边无交(不算端点处的交点)。此时我们发现 \(a_i,b_i\) 没用了,都可以扔掉了。
那么我们就往 \(p\) 里填点,要求最后填出的 \(p\) 边无交。
这时十分具象了,我们可以开始手玩了!
树
手玩一下……
可以发现树的限制是:
必须走完这个子树再回溯,同时一个节点和他的儿子子树在排列上可以任意换位。
森林
手玩一下……
树之间无边,那在跑一棵树时,别的树可以乱入,但是一棵树必须一次性跑完。