20分,求助!!!
查看原帖
20分,求助!!!
684280
ywb123456楼主2025/6/23 20:12
#include<bits/stdc++.h>
using namespace std;
long long n;
long long a[100005];
long long b[100005];
long long sum=1,k=0;
long long s=10000;
int main()
{
	cin>>n;
	for (int i=1;i<=pow(2,n);i++) 
	{
		cin>>a[i]; 
		b[i]=a[i];
	}
	for (int j=1;j<n;j++)
	{
		sum*=2;
		int k1=pow(2,k);
		for (int i=1;i<=pow(2,n);i+=sum)
		{
			if (a[i]>a[i+k1]) a[i+k1]=-1;
			else 
			{
				a[i]=a[i+k1];
				a[i+k1]=-1;
			}
		}
		k++;
	}
	for (int i=1;i<=pow(2,n);i++)
	{
		if (a[i]!=-1) s=min(s,a[i]);
	}
	for (int i=1;i<=pow(2,n);i++)
	{
		if (s==b[i]) 
		{
			cout<<i<<endl;
			return 0;
		}
	}
	return 0;
} 
2025/6/23 20:12
加载中...