最小堆问题
#include <iostream> #include<vector> #include<string> #include<stdio.h> #include<cmath> using namespace std; int main(){ int t,m,n,father,son; bool key; int a[1000]; cin>>t; while(t--){ key=true; cin>>m; for(int i=1;i<=m;i++){ cin>>a[i]; } for(int i=0;i<m-1;i++){ cin>>father>>son; if(a[father]>a[son]){ //核心步骤 key=false; } } if(key==true) printf("Yes"); else printf("No"); } return 0; }