【题解-信息学奥赛一本通】1365:FBI树(fbi)

发布时间:2026/7/29 15:34:59
【题解-信息学奥赛一本通】1365:FBI树(fbi) 题目1365FBI树(fbi)题目描述我们可以把由“0”和“1”组成的字符串分为三类全“0”串称为B串全“1”串称为I串既含“0”又含“1”的串则称为F串。FBI树是一种二叉树它的结点类型也包括F结点B结点和I结点三种。由一个长度为2 N 2^N2N的“01”串S可以构造出一棵FBI树T递归的构造方法如下T的根结点为R其类型与串S的类型相同若串S的长度大于1将串S从中间分开分为等长的左右子串S1和S2由左子串S1构造R的左子树T1由右子串S2构造R的右子树T2。现在给定一个长度为2 N 2^N2N的“01”串请用上述构造方法构造出一棵FBI树并输出它的后序遍历序列。输入第一行是一个整数N0≤N≤10第二行是一个长度为2N的“01”串。输出一行这一行只包含一个字符串即FBI树的后序遍历序列。时空限制1s / 64MB样例输入3 10001011样例输出IBFBBBFIBFIIIFF【提示】对于40%的数据N≤2对于100%的数据N≤10。代码#includebits/stdc.husingnamespacestd;intn;string s;voidpost(string str){if(str.size()1){post(str.substr(0,str.size()/2));post(str.substr(str.size()/2));}intone0,zero0;for(inti0;istr.size();i)if(str[i]0)zero;elseone;if(onezero)coutF;elseif(one)coutI;elsecoutB;}intmain(){cinns;post(s);return0;}结果