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

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

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

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

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

思路:二叉中的每个节点都是一个子串,子串中只有1的话,该节点为I节点,只有0的话为B节点,1和0都存在则为F节点。

#include <iostream>
using namespace std;string s;void buildFBItree(int l,int r)
{if(l == r){if(s[l] == '0') cout<<"B";else cout<<"I";return ;}int mid = l+r>>1;buildFBItree(l,mid);buildFBItree(mid+1,r);int cnt0 = 0, cnt1 = 0;for(int i=l;i<=r;i++){if(s[i] == '0') cnt0++;else cnt1++;}if(cnt0 && cnt1) cout<<"F";else if(cnt1) cout<<"I";else cout<<"B";
}int main()
{int n;cin>>n;cin>>s;int len = s.size();buildFBItree(0,len-1);return 0;
}

蓝桥杯刷题-FBI树相关推荐

  1. 蓝桥杯刷题日记 更新到2022/2/5

    蓝桥杯刷题日记 文章目录 蓝桥杯刷题日记 DAY1 1.递归实现指数型枚举 2.递归实现组合型枚举 3.递归实现排列型枚举 Day2 1.八皇后问题 *2.费解的开关 3.带分数 Day3 1.飞行员 ...

  2. ACMoi蓝桥杯刷题网站推荐

    ACM oi 蓝桥杯 刷题网站推荐 ACM刷题oj oi刷题 蓝桥杯刷题oj 刷题网站推荐 刷题的oj越来越多 肯定都有他们自己的特点 今天给各位朋友推荐一下一些网站 新手(中文题) 1.洛谷容易的题 ...

  3. 【蓝桥杯刷题冲刺辅导】掌握递归·DFS解题套路,这一文足以?

    大家好,我是安然无虞. 目录 一.刷题前和铁汁们唠一唠 1.刷题前须知 2.刷题时套路 <1>套路 <2>背下列常用数 ​ <3>投机取巧:根据数据范围确定算法 ​ ...

  4. 蓝桥杯刷题之分享或许会迟到,但绝不会缺席

    不好意思大家.今晚因为需要学习java 所以博客写的有点晚了,但我中午就把这三道题准备好了!!! 第三天的蓝桥杯刷题 回文串 挖掘机技术哪家强 说反话 回文串 大家看这个题目.或许会想到回文数之前,但 ...

  5. 蓝桥杯刷题总结---第五周

    一.贪吃的大嘴 有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的. ...

  6. 蓝桥杯之FBI树问题

    问题描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...

  7. 蓝桥杯刷题以及算法解析的网址

    蓝桥杯题目算法解析参考博客:https://blog.csdn.net/qq_38648587 做题目的网站,有实时模拟比赛:https://oj.ahstu.cc/JudgeOnline/probl ...

  8. 小白要努力之为了蓝桥杯刷题!!!超简单哦!!!

    分享一个歌词直接让我笑喷的歌词----之前我不听歌的,毕竟第一次听到.学习的目的就是找工作,或者创业,但就是一个字"挣钱" 下面直接开始正题吧 首先科普一些知识,全局变量定义的时候 ...

  9. 蓝桥杯刷题007——七段码

    七段码 七段码2020年第十一届蓝桥杯省赛,填空题,lanqiao0J题号595 [问题描述] 七段数码管,一共有7个发光二极管,问能表示多少种不同的字符,要求发光的二极管是相连的. 七段数码管,一共 ...

最新文章

  1. 阿里、腾讯基本薪资曝光,资深算法工程师24万美元,高级研究员26万美元
  2. PCB板布线的12个细节
  3. 红外热成像拥抱无人机 迸发安防救援新活力
  4. placement new--《C++必知必会》 条款35
  5. 2020计算机基础知识考试题及答案,2020年计算机二级公共基础知识考试模拟习题及答案...
  6. 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了(总结了一张思维图)...
  7. 智能水位检测系统proteus_浅谈智能视觉检测系统的6大优点
  8. Spring 实现发送电子邮件的两种方法
  9. PyTorch:tensor-数学API
  10. 华为系列设备优先级总结(一)
  11. 解决SAXParseException: Premature end of file
  12. Html加jq实现5星好评效果,关于jquery实现五星好评的方法
  13. 笔试题目:定义一个类不能被继承,且只能被实例化3次 .
  14. Flash背景透明(透明背景)设置方法
  15. sdelete使用指南(Windows Sysinternals Suite工具介绍转)
  16. 2019东北四省 B. Balanced Diet
  17. 模电_第七章_正弦波振荡电路
  18. windows10下用PowerShell命令(Get-FileHash)校验文件的Hash值(MD5、SHA1、SHA256等)
  19. 多线程、并发/并行、自定义线程类、线程安全、守护线程、定时器、线程状态、线程池
  20. IP 反查地址开源项目 ip2region

热门文章

  1. setTimeout()与clearTimeout()
  2. 圆与圆的位置关系题目含答案_圆中考数学题汇总附答案
  3. ttf文件无法删除,system打开
  4. implements在java,implements在java中实现接口的方法
  5. html5.js不起作用,js+html onmouseover不管用
  6. 怎样查询出每个快递单号相对应的公司,并分析出物流信息
  7. 关于ajax的学习笔记
  8. 1、Ray简介和背景
  9. 验证码识别 matlab,MATLAB数字验证码识别
  10. 三国志战略版:国庆英雄集结解说_六