社区讨论
20分二叉树求助
P4715【深基16.例1】淘汰赛参与者 4已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo8azd0r
- 此快照首次捕获于
- 2023/10/27 15:39 2 年前
- 此快照最后确认于
- 2023/10/27 15:39 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int va[260],wr[260];
int n;
void dfs(int x)
{
if(x>=1<<n)
{
return;
}
else
{
dfs(2*x);
dfs(2*x+1);
int lv=va[2*x],rv=va[2*x+1];
if(lv>rv)
{
va[x]=lv;
wr[x]=wr[x*2];
}
else
{
va[x]=rv;
wr[x]=wr[2*x+1];
}
}
}
int main()
{
cin>>n;
for(int i=0;i<1<<n;i++)
{
cin>>wr[i+(1<<n)];
wr[i+(1<<n)]=i+1;
}
dfs(1);
cout<<((va[2] > va[3]) ? wr[3] :wr[2]);
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...