簡單二叉樹
阿新 • • 發佈:2020-12-21
二叉樹模板 敲敲
luogu P4715
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
int n;
int m[201];
int tree[201];
map<int,int> f;
void bulid(int node,int l,int r)
{
if(l==r)
{
tree[node]=m[r];
return;
}
int lt=node*2;
int rt=node*2+1;
int mid=(l+r)/2;
bulid(lt,l,mid);
bulid(rt,mid+1,r);
tree[node]=max(tree[lt],tree[rt]);
}
int main()
{
cin>>n;
for(int i=1;i<=1<<n;i++)
{
cin>>m[i];
f[m[i]]=i;
}
bulid( 1,1,1<<n);
cout<<f[min(tree[2],tree[3])];
return 0;
}
極其隨意