图论题目做题笔记

二叉树,树的直径,LCA 等

1. P1229 遍历问题

好题。

考虑什么时候前序和中序一样,但是可能有多种二叉树。

不难发现,当一个结点只有一个儿子的时候,不知道这是左儿子还是右儿子,那么就会产生问题。根据乘法原理,假设有 \(x\) 个结点只有一个儿子,那么答案就是 \(2^x\)

然后考虑怎么算。前序遍历是根左右,后序遍历是左右根。那么可以找到规律:如果能找到一个 \(i\) 和一个 \(j\),使得 \({s_1}_i={s_2}_j\),且 \({s_1}_{i+1}={s_2}_{j-1}\),也就是形如 ABBA 这样的地方,那么就表示这里只有一个儿子。

那么直接双重循环枚举 \(i,j\) 就可以了。时间复杂度 \(O(|s|^2)\),可以通过。

posted @ 2025-01-31 17:20  _幸运草  阅读(6)  评论(0编辑  收藏  举报