蒟蒻求助,有大佬可以帮忙看看具体错在哪里吗
查看原帖
蒟蒻求助,有大佬可以帮忙看看具体错在哪里吗
524554
Skykguj楼主2021/8/19 09:28

有大佬可以帮忙看看具体错在哪里吗,感觉跟深基上写的一样啊。

Code:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int value[260], winner[260], n;
void dfs(int x) {
    if (x >= 1 << n) return;
    else {
        dfs(2 * x);
        dfs(2 * x + 1);
        int lvalue = value[2 * x], 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[i + (1 << n)];
        winner[i + (1 << n)] = i + 1;
    }
    dfs(1);
    cout << (value[2] > value[3]) ? winner[3] : winner[2];
    return 0;
}
2021/8/19 09:28
加载中...