[NOIP2004]FBI树

简介: [NOIP2004]FBI树

题目: [NOIP2004]FBI树 ,哈哈,我们今天来看一道经典的二叉树题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧:

题目描述是复制的,可能有部分显示不对,我就把题目链接放下面!

题目链接: [NOIP2004]FBI树

题目描述

输入描述

第一行是一个整数 N。

第二行是一个长度为 2N 的 01 串。

输出描述

包含一行,这一行只包含一个字符串,即 FBI 树的后序遍历序列。

示例1

输入

3

10001011

输出

IBFBBBFIBFIIIFF

思路:

先放一张acwing y总画的图

这道题差不多就是个二叉树遍历的模板题,只是需要加点判断

具体的我们来看看代码吧!

我们来看看成功AC的代码吧:

#include<bits/stdc++.h>
using namespace std;
int n;
string s;
char deal(int l,int r){
    if(l==r){//只有一个节点时
        if(s[l]=='0'){cout<<'B'; return 'B';}
        else{ cout<<'I'; return 'I';}
    }
    int mid=(l+r)>>1;
    char a= deal(l,mid);//递归处理左子树
    char b= deal(mid+1,r);//递归处理右子树
    if(a==b){//判断是B还是I
        if(a=='B'){ cout<<'B';return 'B';}
        else if(a=='I') { cout<<'I';return 'I';}
    }
    cout<<'F';
    return 'F';
}
int main(){
    cin>>n;
    cin>>s;
    deal(0,(1<<n)-1);
    return 0;
}


目录
打赏
0
0
0
0
0
分享
相关文章
|
9月前
[NOIP2002]过河卒 标准递归
[NOIP2002]过河卒 标准递归
52 6
老程序员分享:NOIP2016天天爱跑步(树上差分)
老程序员分享:NOIP2016天天爱跑步(树上差分)
44 0
|
9月前
|
C++
【洛谷 P1047】[NOIP2005 普及组] 校门外的树 题解(位集合)
**NOIP2005普及组问题:**给定长度为$l$的马路,上面等距种植着树,需移除位于建造地铁区域的树。输入包含马路长度和区域数,以及各区域起止点,输出移树后剩余树的数量。样例输入:$l=500$, $m=3$,输出:$298$。$20\%$数据无区域重合,$1 \leq l \leq 10^4$,$1 \leq m \leq 100$。解决方案利用位集合(bitset)表示树的状态,遍历区域将树设为0,最后统计1的数量。AC代码使用C++实现。
56 0
|
9月前
【洛谷 P1002】[NOIP2002 普及组] 过河卒 题解(递归+记忆化搜索)
`NOIP2002`普及组的过河卒问题是一个棋盘路径计数挑战。卒从$(0,0)$出发到$(n,m)$,只能向下或向右移动,马在$(c1,c2)$固定,控制某些点。任务是计算不受马阻挡的路径数。输入是目标和马的位置,输出是路径总数。使用动态规划和记忆化搜索避免重复计算,样例输入$(6,6,3,3)$输出$6$。代码中定义了$f(x,y)$计算$(x,y)$处的路径数,利用边界条件和递推关系计算。
99 0
1314:【例3.6】过河卒(Noip2002)
1314:【例3.6】过河卒(Noip2002)
172 0
刷题之FBI树
刷题之FBI树
136 0
【递归与递推】洛谷[NOIP2002 普及组] 过河卒
前言 本题来自洛谷P1002. 题目链接:[NOIP2002 普及组] 过河卒 - 洛谷
259 0
【蓝桥杯集训·每日一题】AcWing 1497. 树的遍历
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 递归
86 0