5505: 二叉搜索树(tree)
Memory Limit:512 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
在本题中,二叉搜索树是一种二叉树的树形数据结构,其定义如下:
若二叉搜索树的左子树不为空,则其左子树上所有点的权值均小于等于其根节点的值。若二叉搜索树的右子树不为空,则其右子树上所有点的权值均大于等于其根节点的值。二叉搜索树的左右子树均为二叉搜索树。
小明有一棵n个节点树,用1-n编号,其中根节点是1,第i个节点的权值为v_i,但是不满足二叉搜索树的要求,小明希望不改变树的形状,仅通过若干次交换(交换是指交换两个节点的权值),使得树变成二叉搜索树。求有多少个节点不用参与交换,即有多少个节点一开始就在正确的位置。
Input
输入的第一行包含一个正整数n,表示树的节点数量。
接下来n行,每行三个整数v_i、l_i、r_i分别表示节点的权值,节点的左儿子编号,右儿子编号,编号的值为0表示树没有,对应的子树。
Output
输出仅一个数字,表示不需要参与交换的节点数量。
Sample Input Copy
6
1 2 3
7 0 4
9 6 0
5 5 0
4 0 0
8 0 0
Sample Output Copy
4
HINT
对于所有测试数据有:1<=v_i<=10^9, 1<=n<=5*10^5。