题目大意
给出一颗二叉树及其 N N 个节点的权值,每个节点权值最多修改一次,且只能修改成整数。求最小的修改次数,使这棵二叉树成为排序二叉树。
首先,排序二叉树是一种左儿子权值严格小于父亲,右儿子权值严格大于父亲的二叉树( BST B S T )。所谓“排序”,就是先序遍历排序二叉树,得到的是一个严格递增的序列。
那么我们显然要先先序遍历一趟,构造出 A A 数组,那么题目就变成求使一个序列变为严格递增所需的最少修改次数
所以答案就为
但是,
题目要求每个节点的权值只能改为整数!只要有“卡死”的重复元素,就完蛋了
如这个样例就崩溃了:
N=4 N = 4 A:1