![]() |
||||||||||
|
||||||||||
Problem ATime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1 Accepted Submission(s): 1 Problem Description 给定一棵带权二叉树,请判断它是不是一个最小堆。 一棵二叉树是一个最小堆,当且仅当对于树上任意一个节点,它的权值都小于或等于它的任意子节点的权值。 Input 输入的第一行是测试数据的组数T(T<=100)。 对于每组测试数据: 第一行是一个整数N(1<=N<=100),表示树的节点个数。 接下来一行包含N个正整数,第i个整数 valuei(1<=valuei <=1000) 表示编号为i的点的权值。 接下来(N-1)行,每行两个整数u和v(1<=u,v<=N; u<>v),表示节点u和v之间有一条边。 测试数据保证给定的一定是一棵二叉树,并且我们假定节点1是树的根节点。 Output 对于每组测试数据,如果给定的树是一个堆则输出Yes,否则输出No。 Sample Input
Sample Output
Source | ||||||||||
|