给定一棵树,每个节点有一个权值。现在每次可以交换任意两个节点的权值,请问最少需要多少次交换可以使得每个节点的权值等于它的编号?保证给出的权值是一个排列,也就是说保证一定有解。
第一行输入一个正整数 n,代表树上的节点数量。
第二行输入 n 个正整数 a1,a2,...,an,第 i 个数字表示节点 i 的权值,这 n 个数互不相同。
接下来的 n−1 行,每行输入两个正整数 u 和 v,代表节点 u 和节点 v 有一条边相连。
2≤n≤1000
1≤u,v,ai≤n
一个整数,代表最小的交换次数。
输入:
4
2 1 4 3
1 2
2 3
2 4
输出:
2
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.