3 条题解

  • 1
    @ 2024-10-5 14:39:35
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int value[1<<8];
    int winner[1<<8];
    void dfs(int x){
    	if(x>=(1<<n))return;
    	dfs(2*x);
    	dfs(2*x+1);
    	int lvalue=value[2*x];
    	int rvalue=value[2*x+1];
    	if(lvalue>rvalue){
    		value[x]=lvalue;
    		winner[x]=winner[2*x];
    	}else{
    		value[x]=rvalue;
    		winner[x]=winner[2*x+1];
    	}
    }
    int main(){
    	cin>>n;
    	for(int i=0;i<(1<<n);i++){
    		cin>>value[(1<<n)+i];
    		winner[(1<<n)+i]=i+1;
    	}
    	dfs(1);
    	int num=(value[2]>value[3]?winner[3]:winner[2]);
    	cout<<num;
    	return 0;
    }

    信息

    ID
    2056
    时间
    1000ms
    内存
    125MiB
    难度
    4
    标签
    (无)
    递交数
    60
    已通过
    28
    上传者