洛谷 P1087 【FBI树】题解

时间:2022-06-13 20:47:34

Link
有句话说的好啊,树的题不一定要把树建出来
这题就是这样
这题直接在读入后,
写个递归函数用于二分查找,
然后,,
就没了。。
(貌似太口胡了吧)
$ \rm code $

# include <bits/stdc++.h>
using namespace std;
const int maxN = 1030; // >= 1024(2^10)
char ch[maxN];
int n;
void binary_search(int, int);
int main() {
    cin >> n >> (ch + 1);
    binary_search(1, 1 << n);
    return 0;
}
void binary_search(int l, int r) {
    int mid = l + r >> 1;
    if(l < r) binary_search(l, mid), binary_search(mid + 1, r);
    bool zero = false, one = false;
    for(int i = l; i <= r; ++i) (ch[i] == 48) ? (zero = true) : (one = true);
    if(zero && one) putchar('F');
    else if(zero) putchar('B');
    else putchar('I');
}