求各位大佬帮忙看看问题
查看原帖
求各位大佬帮忙看看问题
1085681
kukka楼主2023/10/30 20:19

为什么我在本地,至少第一个案例正确通过了,但是提交的时候爆零了

#include <bits/stdc++.h>
using namespace std;

#define ls(i) (i << 1)
#define rs(i) (i << 1|1)

char FBI[10000];
string nums = "";
int n;

int build(int l, int r, int i) {
    if (l == r) {
        if (nums[l] == '0') {
            FBI[i] = 'B';
            return 0;
        }
        if (nums[l] == '1') {
            FBI[i] = 'I';
            return 1;
        }
    }

    int mid = l + ((r - l) >> 1);
    int l_tag = build(l,mid,ls(i));
    int r_tag = build(mid+1,r,rs(i));

    if (l_tag == 1 && r_tag == 1) {
        FBI[i] = 'I';
        return 1;
    }
    else if (l_tag == 0 && r_tag == 0) {
        FBI[i] = 'B';
        return 0;
    }
    else {
        FBI[i] = 'F';
        return -1;
    }
}

void postTra(int index, int size) {
    //后序遍历
    if (index > size) {
        return;
    }
    
    postTra(ls(index),size);
    postTra(rs(index),size);
    cout << FBI[index];
}

int main()
{
    cin >> n >> nums;
    build(0,nums.size()-1,1);
    postTra(1,pow(2,n+1));
    cout << endl;

    //system("pause");
    return 0;
}
2023/10/30 20:19
加载中...