首页 > 代码库 > 2977 二叉堆练习1 codevs
2977 二叉堆练习1 codevs
题目描述 Description
已知一个二叉树,判断它是否为二叉堆(小根堆)
输入描述 Input Description
二叉树的节点数N和N个节点(按层输入)
输出描述 Output Description
YES或NO
样例输入 Sample Input
样例输入1
3
1 4 9
样例输入2
3
6 4 9
样例输出 Sample Output
样例输出1
YES
样例输出2
NO
数据范围及提示 Data Size & Hint
对于20%的数据 N≤20
对于50%的数据 N≤1000
对于100%的数据 N≤50000,每个节点≤10000
#include <cstdio>#include <iostream>using namespace std;int n,tree[60000];bool pq;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&tree[i]); for(int i=1;i<=n;i++) for(int j=i;j<=n;j=j*2) if(tree[i]>tree[j]) { pq=1; break; } if(pq==true) printf("NO"); else printf("YES"); return 0;}
2977 二叉堆练习1 codevs
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。