急!
by Kevin626 @ 2024-08-03 11:28:08
@[Kevin626](/user/1129659) dfs死循环了吧……
by XLoffy @ 2024-08-03 11:43:05
而且不用递归也可以过啊
by XLoffy @ 2024-08-03 11:46:07
@[Kevin626](/user/1129659) 我豆我也re了
by zhangkean777 @ 2024-08-03 23:11:58
```cpp
#include <iostream>
using namespace std;
struct treee
{
int num,id;
} a[100010],b[100010];
int n;
int findd(int x)
{
int j=1;
int q,w,k=1;
for(int i=(1<<(n-x+1));i<=(1<<(n-x+2))-1;i++)
{
if(j%2==1) q=a[i].num,w=a[i].id;
if(j%2==0)
{
if(q<a[i].num)
{
b[k].num=a[i].num;
b[k].id=a[i].id;
}
else{
b[k].num=q;
b[k].id=w;
}
k++;
}
j++;
}
}
int main()
{
cin>>n;
int cnt=1;
for(int i=(1<<n);i<=(1<<(n+1))-1;i++)
{
cin>>a[i].num;
a[i].id=cnt;
cnt++;
}
for(int i=1;i<=n;i++)
{
findd(i);
int k=1;
for(int j=(1<<(n-i));j<=(1<<(n-i+1))-1;j++)
{
a[j].num=b[k].num;
a[j].id=b[k].id;
k++;
}
}
cout<<a[2].id;
return 0;
}
```
by zhangkean777 @ 2024-08-03 23:12:56
```cpp
#include <iostream>
using namespace std;
struct c
{
int id;
int d;
};
c ls[512];
int main()
{
int n = 1, t;
cin >> t;
for (int i = 0; i < t; i++)
{
n *= 2;
}
for (int i = 0; i < n; i++)
{
cin >> ls[i].d;
ls[i].id = i + 1;
}
while (n != 2)
{
n /= 2;
for (int i = 0; i < n; i++)
{
if (ls[2 * i].d > ls[2 * i + 1].d)
{
ls[i].d = ls[2 * i].d;
ls[i].id = ls[2 * i].id;
}
else
{
ls[i].d = ls[2 * i + 1].d;
ls[i].id = ls[2 * i + 1].id;
}
}
}
if (ls[0].d > ls[1].d) cout << ls[1].id;
else cout << ls[0].id;
}
```
by _yin_wei_ta_shan_ @ 2024-08-09 13:51:06