【题目描述】

我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。

FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:

T的根结点为R,其类型与串S的类型相同;

若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。

现在给定一个长度为2N的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历序列。

【输入】

第一行是一个整数N(0 ≤ N ≤ 10),第二行是一个长度为2N的“01”串。

【输出】

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

【输入样例】

3
10001011

【输出样例】

IBFBBBFIBFIIIFF

【提示】

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 3001
#define MOD 123
#define E 1e-6
using namespace std;
int n;
char a[N],b[N];
void build(char *s,int n)
{int k=0;for(int i=(1<<n);i<=(1<<(n+1))-1;i++){if(a[k++]=='0')b[i]='B';elseb[i]='I';}for(int i=n-1;i>=0;i--)for(int j=(1<<i);j<=(1<<(i+1))-1;j++){if(b[2*j]=='B'&&b[2*j+1]=='B')b[j]='B';else if(b[2*j]=='I'&&b[2*j+1]=='I')b[j]='I';elseb[j]='F';}
}
void visit(int node)
{if(node>( 1<<(n+1))-1 )return;visit(node*2);visit(node*2+1);cout<<b[node];
}
int main()
{cin>>n;cin>>a;build(a,n);visit(1);return 0;
}

FBI树(信息学奥赛一本通-T1365)相关推荐

  1. 信息学奥赛一本通1336:寻找树根和孩子(图论算法-树)详细讲解

    题目 信息学奥赛一本通(C++版)在线评测系统 思路讲解 首先我们可以看到这到题数据量不大,可以直接简单粗暴用邻接矩阵来存,用题目中的数据,邻接矩阵存储如下: 1 2 3 4 5 6 7 8 1 1 ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  5. 信息学奥赛一本通 1356:计算(calc)

    [题目链接] ybt 1356:计算(calc) [题目考点] 1. 表达式求值 中缀表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 str ...

  6. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  7. 信息学奥赛一本通网站1672:游戏通关

    如果你正在找这道题不超时(或者和自己的AC算法不一样)的算法,并且恰好像本蒟蒻一样会树状数组不会线段树,继续往下看 网址:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 这道题的贪心 ...

  8. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

  9. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

最新文章

  1. 您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
  2. Swift 学习手记1,pod 的 类库使用
  3. 程序员永远的痛之字符编码的奥秘
  4. java自动推断类型_Java 7的类型推断
  5. Atitit xml xpath以及mybatis xml mapper脱机解析 目录 1.1. parseStt(String id, Element root) 1 1.2. parseStt
  6. php在屏幕中间弹窗,屏幕中间弹框的一种写法
  7. 阿里云oss 简单上传
  8. iframe 防止挂马的问题
  9. Oracle函数——COALESCE
  10. ubuntu14.04_cuda8.0_cuDnn5.0_python3.4_gtx750ti_tensorflow
  11. Difference between Static video and Single image ?静态视频和单张图像的区别
  12. Android带动画进度条简单实现
  13. 一篇文章,只用看三遍,终生不忘网络分层
  14. 多因素身份认证之手机推送认证
  15. 【图文详解】一文全面彻底搞懂HBase、LevelDB、RocksDB等NoSQL背后的存储原理:LSM-tree 日志结构合并树...
  16. 学会使用getopt函数
  17. linux程序内码,Linux操作系统下如何转换文本文件的内码
  18. office 2010 快捷键
  19. 海思平台ISP与图像的IQ调试(1)
  20. c语言水果系统链表,CH3讲义.doc

热门文章

  1. 鸿蒙霸榜 GitHub,从最初的 Plan B 到“取代 Android”?
  2. 极度烧脑+惊人发现:4个颠覆你世界观的量子理论实验
  3. Cortex-M3栈内存操作
  4. linux内核ufs设备树,Linux内核初始化流程笔记
  5. InnoDB原理篇:Change Buffer是如何提升索引性能的?
  6. 醉了!吃着火锅哼着歌,男朋友强行给我科普什么是补码!
  7. 拿到一台新的Windows电脑,我会做什么?
  8. 数据中台建设五步法(文末赠书)
  9. 从0到1设计一个秒杀系统
  10. nodejs项目如何部署到服务器上?