20分,求助,呜呜呜~~~~
查看原帖
20分,求助,呜呜呜~~~~
406736
QAQ沅达不妙楼主2022/1/14 00:03
#include <iostream>
#include <cstdio>

using namespace std;
int n;
struct team{
	int name;
	int power;
}a[300];

void dfs(int x){//遍历整个树 无需返回值用void 
	if (x >= 1 << n){
		return ;
	} 
	else{
		dfs (2*x);//递归出左儿子
		dfs (2*x+1);//右儿子 
		int l, r;
		l = a[2*x].power;
		r = a[2*x+1].power;
		if (l < r){
			a[x].power = r;
			a[x].name =  a[2*x+1].name;
		}
		else {
			a[x].power = l;
			a[x].name = a[2*x].name;
		}
	}
}

int main(){

	for (int i=1; i <= (1 << n); i++){
		cin >> a[i + 1 << n].power;
		a[i + 1 << n].name = i;
    }
	dfs(1); //将整个树画出来 
	cout << a[2].name; 
	return 0; 
}
2022/1/14 00:03
加载中...