01 Tree

有利用数学归纳法思想的扩展法,就有反过来的删除法,这里利用删除法

考虑对于一颗合法的树,显然删除某两个叶子,会让其共同父亲变成叶子,这就形成了一个递归的过程;而某两个叶子在序列\(a\)中也一定是相邻的,而且很容易发现特征,就是其\(a\)的大小相差\(1\)

但是现在的问题就是我们不知道删除哪两个相差\(1\)的相邻的\(a\),因为满足相差\(1\)的相邻的\(a\)有很多,这个时候我们就考虑特殊元素,考虑\(a\)最大的元素,显然其父亲的另一个节点也一定是叶子节点(否则如果另一个节点还有子孙,就与这个元素的\(a\)最大相矛盾),于是就可以删除这两个元素(当然要满足删除的前提条件,就是其相邻的\(a\)要比其小\(1\))并且向序列中添加一个\(a\)值为较小元素的元素,就形成了一个子问题;注意可能\(a\)最大的元素左边和右边的元素都比其小\(1\),这个时候无论删除谁都可以,得到的新的\(a\)序列都长成一个样子

posted @ 2024-07-08 22:56  最爱丁珰  阅读(2)  评论(0编辑  收藏  举报