zoukankan      html  css  js  c++  java
  • 1155 Heap Paths (30 分)

    这道题不知道哪出了错误有一个测试点过不了

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 int a[1100];
     5 int n;
     6 vector<vector<int>> sp;
     7 void dfs(int index, vector<int> p)
     8 {
     9 
    10     if (2 * index + 2 <n)
    11     {
    12         p.push_back(a[2 * index + 2]);
    13         dfs(2 * index + 2, p);
    14         p.pop_back();
    15     }
    16     if (2 * index + 1 < n)
    17     {
    18         p.push_back(a[2 * index + 1]);
    19         dfs(2 * index + 1, p);
    20         p.pop_back();
    21     }
    22     if (2 * index + 1 >= n && 2 * index + 2 >= n){
    23         //cout << a[index]<<endl;
    24         sp.push_back(p);
    25         return;
    26     }
    27 }
    28 int main()
    29 {
    30 
    31     cin >> n;
    32     for (int i = 0; i < n; i++)
    33     {
    34         int x = 0;
    35         cin >> x; a[i] = x;
    36     }
    37     vector<int> p; p.push_back(a[0]);
    38     dfs(0, p);
    39     bool is = true; bool may = true;
    40     for (int i = 0; i < sp.size(); i++)
    41     {
    42         int temp = sp[i][0]; int size = 0;int equal=0;
    43         for (int j = 0; j < sp[i].size(); j++)
    44         {
    45            if(j>0 && temp==sp[i][j]){equal++;temp=sp[i][j];}
    46             if (j>0 && temp > sp[i][j]){ size++; temp = sp[i][j];may = false; }
    47             if (j>0 && temp <sp[i][j]){ size--; temp = sp[i][j]; }
    48             printf("%d", sp[i][j]);
    49             if (j != sp[i].size() - 1)printf(" ");
    50         }
    51         if (abs(size)+equal != sp[i].size() - 1){ is = false; }
    52         printf("
    ");
    53     }
    54     if (is){
    55         if (!may)printf("Max Heap");
    56         else printf("Min Heap");
    57     }
    58     else printf("Not Heap");
    59     return 0;
    60 }
  • 相关阅读:
    关于MD5的个人笔记
    QueryString 页面传值方法
    酒店管理系统房态图的效果制作
    开始我的学习之路
    SQL取数据库名,取表名,取列名
    鼠标/键盘事件
    C#皮肤使用例子.
    C#调用WIN API
    C#中定时器的使用方法
    C#随机点名程序例子(名字由配置文件提供)
  • 原文地址:https://www.cnblogs.com/luoshiyong/p/10099189.html
Copyright © 2011-2022 走看看