已经找到问题
![](https://cdn.luogu.com.cn/upload/image_hosting/jbxguy64.png)
`for (int i = 3; i >= 2; i--)`
改为
`for (int i = n; i >= 2; i--)`
直接把样例的数据带进去了()
by imfkwk @ 2021-01-28 00:14:11
那请删了吧
by DWT8125 @ 2021-02-18 08:58:31
好家伙,跟我的想法一样
by Valk_R @ 2021-04-13 20:46:36
指思路
by Valk_R @ 2021-04-13 20:47:03
也许可以看看我这个
```cpp
#include<bits/stdc++.h>
using namespace std;
struct zz
{
int x,b;
};zz a[260];
int main()
{
int n,k;
cin>>n;
for(int i=1;i<=pow(2,n);i++)
{
cin>>a[i].x;
a[i].b=i;
}
k=1;
while(n>1)
{
for(int m=1;m<=pow(2,n-1);m++){
if(a[k].x>a[k+1].x)
{
a[m].x=a[k].x;
a[m].b=a[k].b;
}
else
{
a[m].x=a[k+1].x;
a[m].b=a[k+1].b;
}
k+=2;
}
k=1;
n--;
}
if(a[1].x>a[2].x)cout<<a[2].b;
else cout<<a[1].b;
return 0;
}
```
by Valk_R @ 2021-04-13 20:48:27
@[I_love_your_mother](/user/389540)
这算不算讨论区题解?
by Surge_of_Force @ 2021-07-25 15:13:27
@[wapmhac](/user/230875) 这也算题解
by imfkwk @ 2021-07-25 17:00:00
确实是一个很好的思路(我的思路核心跟你一样qwq!)
不过我的代码更简短一点,主要是因为没用结构体,下标用map存进去,关键字是输入的数据。
下面贴上我的代码:
```cpp
#include<iostream>
#include<map>
using namespace std;
map<int,int> Ids;
int Nl[200],n,i,l;
int main(){
cin>>n;l=(1<<n);
for(i=1;i<=l;++i) cin>>Nl[i],Ids[Nl[i]]=i;
while(1){
if(l==2){
cout<<Ids[min(Nl[1],Nl[2])];
return 0;
}
for(i=1;i<=l;++i)if(i%2)Nl[i/2+1]=max(Nl[i],Nl[i+1]);l/=2;
}
}
```
by 狼霜朔又WA了吗 @ 2022-08-18 18:40:33