美文网首页
2020-05-28 【深基16.例1】淘汰赛

2020-05-28 【深基16.例1】淘汰赛

作者: JalorOo | 来源:发表于2020-05-28 22:54 被阅读0次
//
//  main.cpp
//  洛谷
//
//  Created by Jalor on 2020/5/26.
//  Copyright © 2020 Jalor. All rights reserved.
//

#include <iostream>
#include <map>  //注意,STL头文件没有扩展名.h
#include <algorithm>
#include <cstdio>

using namespace std;

struct point{
    int power,id;
};

point p[150],tree[600];

bool cmp(point a, point b){
    return a.power<b.power;
}

void build_tree(int start,int end,int node){
    if (start == end) {
        tree[node] = p[start];
        return ;
    }
    int mid = (start+end)/2;
    int left_node = node*2;
    int right_node = node * 2 + 1;
    build_tree(start, mid , left_node);
    build_tree(mid+1, end , right_node);
    tree[node] = max(tree[left_node],tree[right_node],cmp);
}

int main() {
    
    int n;
    scanf("%d",&n);
    for (int i = 1 ; i <= (1<<n); i++) {
        scanf("%d",&p[i].power);
        p[i].id = i;
    }
    
    build_tree(1,(1<<n),1);
//    for (int i = 1 ; i < (1<<n)*4; i++) {
//        printf("tree[%d]: id = %d , powder = %d\n",i,tree[i].id,tree[i].power);
//    }
    
    printf("%d",min(tree[2], tree[3], cmp).id);
    return 0;
}


相关文章

网友评论

      本文标题:2020-05-28 【深基16.例1】淘汰赛

      本文链接:https://www.haomeiwen.com/subject/vxttzhtx.html