给定一棵树,每个节点有一个权值。现在每次可以交换任意两个节点的权值,请问最少需要多少次交换可以使得每个节点的权值等于它的编号?保证给出的权值是一个排列,也就是说保证一定有解。
这题分析后发现,其实和树形结构无关,交换可以看成是,将节点的权值放到数组上,对数组进行交换。 由于题目说了是个排列,我们只要从前往后,碰到能交换的进行交换就可以了。
n = int(input())
本题属于以下题库,请选择所需题库进行购买
ScanQRCodePrompt
GoToPasswordLoginPrompt