1094 FBI树
1094 FBI树
2004年NOIP全国联赛普及组
我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。
FBI树是一种二叉树[1],它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:
1) T的根结点为R,其类型与串S的类型相同;
2) 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。
现在给定一个长度为2N的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历[2]序列。
输入的第一行是一个整数N(0 <= N <= 10),第二行是一个长度为2N的“01”串。
输出t包括一行,这一行只包含一个字符串,即FBI树的后序遍历序列。
3
10001011
IBFBBBFIBFIIIFF
对于40%的数据,N <= 2;
对于全部的数据,N <= 10。
分类标签 Tags 点此展开
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
string s;
void f(int l,int r)
{
int mid;
mid=(l+r)/;
if(l!=r)
{
f(l,mid);
f(mid+,r);
int flag1=;
int flag0=;
for(int i=l;i<=r;i++)
{
if(s[i]=='')
flag0=;
else if(s[i]=='')
flag1=;
}
if(flag1==&&flag0==)
cout<<"F";
else if(flag1==)
{
cout<<"I";
}
else if(flag0==)
{
cout<<"B";
}
}
else
{int flag1=;
int flag0=;
for(int i=l;i<=r;i++)
{
if(s[i]=='')
flag0=;
else if(s[i]=='')
flag1=;
}
if(flag1==&&flag0==)
cout<<"F";
else if(flag1==)
{
cout<<"I";
}
else if(flag0==)
{
cout<<"B";
}
return;
/*if(s[l]=='0')
cout<<"B";
else
cout<<"I";
return;*/
}
}
int main()
{
int meiyong;
cin>>meiyong;
cin>>s;
f(,s.length()-);
return ;
}
暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力暴力
1094 FBI树的更多相关文章
- code vs 1094 FBI树 2004年NOIP全国联赛普及组
题目描述 Description 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树[1],它的结点类型 ...
- codevs 1094 FBI树 2004年NOIP全国联赛普及组 x
题目描述 Description 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. ...
- Vijos 1114 FBI树
描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&quo ...
- 【递归】Vijos P1114 FBI树(NOIP2004普及组第三题)
题目链接: https://vijos.org/p/1114 题目大意: 把01串一分为二,左半边描述当前节点左子树,右半边描述右子树,子树全为1则为I节点,全为0则为B节点,混合则为F节点,直到当前 ...
- 创建FBI树
需求:数串由2^n个'0' '1'数串组成,对于一个数串,有01混合出现,则视为F,全0数串为B,全1数串为I. 将给定数串进行切割,如10010011可以用二叉树表示为 F(10010011) / ...
- 蓝桥杯之FBI树问题
问题描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...
- noip普及组2004 FBI树
FBI树 描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含" ...
- Vijos P1114 FBI树【DFS模拟,二叉树入门】
描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树1,它的结点类型也包括F结点,B结点和I结点三种 ...
- [题解]ybt1365:FBI树(fbi)
ybt1365:FBI树(fbi) [题目描述] 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树,它 ...
随机推荐
- 加快npm包安装的方法
一直以来都感觉使用npm安装包的速度特别的慢,但是由于npm上面的包比较齐全,所以一直在忍受这种安装依赖包的折磨. 不过这种折磨,到今天为止应该是可以结束了,在知乎看到一个这样的说法: 用npmins ...
- 高版本sketch文件转成低版本的sketch
https://pan.baidu.com/s/1htmNERU 下载 该文件然后在放到高版本sketch文件的目录下,执行下面命令 chmod +x ./build.sh ./build.sh 文件 ...
- vue is detected
Vue.js is detected on this page. Devtools inspection is not available because it's in production mod ...
- BZOJ - 2005 莫比乌斯水题
\(gcd=k+1\)时,每一个的贡献都是\(2k+1\) \(gcd=1\)时,每一个贡献为\(1\) #include<iostream> #include<algorithm& ...
- Mybatis 问题梳理
问题一:There is no getter for property ... 接口 **Mapper.java 中执行方法: public List<E> listOption(Stri ...
- PIE SDK矢量数据空间索引的创建
1. 功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 创建矢量要素 ...
- 设置Yii2发生错误返回json
如果指示指定一个函数那么可以使用: \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; 如果想整个应用都返回JSO ...
- Lakeshore
用来做 html5 特效,Egret游戏引擎 为什么用Egret开发的游戏在某些Android设备上特别卡? { 在 Android 早期版本( 4.4 之前) ,Android WebView 并不 ...
- oracle基础知识(六)----spfile与pfile
一, 认识参数文件 Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...
- Python max 和 min高级用法
zip max 比较一个字典,是按key比较 如果想比较字典的value max比较只能是相同类型,比如字符串和数字就不能比较会报错 这种会报错