题解:这题拿了满分,而且才做了15分钟,还是继续熟练做题吧,昨天过年的时候给自己的内心很大的一个感受,还有对以后要走的道路有很深的触动。。。我还是想借这个博客提醒刚学PAT的同学。。。。我其实学的并不是很好,但是要到达这样的水准你已经需要付出相当大的努力了,不要看了那些大佬的装逼或者“软文”而感到自责。。。。其实PAT说穿了对于有心从事这个行业的学生,哪怕是研究生考试,都只是一条出路罢了。。。。你如果能做到如此的自觉和高要求,独立开发和创业这条路对你而言,同样是非常值得去尝试的,你应该不要满足于就业,或者说就业并不非常适合你。。。。就我个人来说,我现在反复斟酌的结果是去读研,毕业以后用算法去创业,我以后希望主攻的方向是独立游戏方向的开发
// A1147.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <bits/stdc++.h>
using namespace std;
vector<int> an;
vector<int> bn;
int m, n;
void post_order(int root) {
if(2*root<=n)post_order(2 * root);
if (2 * root+1 <= n)post_order(2 * root+1);
bn.push_back(an[root]);
}
int main()
{
#ifndef ONLINE_JUDGE
#pragma warning(disable:4996)
freopen("in.txt", "r", stdin);
#endif // !ONLINE_JUDGE
cin >> m >> n;
an.resize(n + 1);
for (int i = 0; i < m; i++) {
bool max = true, min = true;
for (int j = 1; j <= n; j++) {
cin >> an[j];
}
for (int j = 2; j <= n; j++) {
if (an[j / 2] < an[j])max = false;
if (an[j / 2] > an[j])min = false;
}
if (max)cout << "Max Heap\n";
if(min)cout << "Min Heap\n";
if (!max && !min)cout << "Not Heap\n";
post_order(1);
cout << bn[0];
for (int i = 1; i < bn.size(); i++) {
cout << " " << bn[i];
}
cout << endl;
bn.clear();
}
return 0;
}