问题 I: 堆
时间限制: 1 Sec 内存限制: 128 MB提交: 466 解决: 238
[ 提交][ 状态][ 讨论版][命题人: admin]
题目描述
输入
输出
样例输入
3
1
10
3
10 5 3
1 2
1 3
5
1 2 3 4 5
3 1
2 1
2 4
2 5
样例输出
Yes
No
Yes
#include<stdio.h>
#include<string.h>
#define N 120
int d[N][N];
int main()
{
int a[N],y,n,i,j,t,x,ans;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
d[x][y]++;
}
ans=1;
for(i=1;i<101;i++)
{
for(j=1;j<101;j++)
{
if(d[i][j]!=0)
{
if(i>j&&a[i]<a[j])
ans=0;
if(i<j&&a[i]>a[j])
ans=0;
}
}
if(ans==0)
break;
}
if(ans==1)
printf("Yes\n");
else printf("No\n");
memset(d,0,sizeof(d));
}
return 0;
}