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树是一种二叉树,它 ...
随机推荐
- 基于python-opencv3的图像显示和保存操作
import cv2 as cv import numpy as np #导入库 print("------------------------ ...
- php文件下载方法收藏(附js下载技巧)
function down($url){ header('Content-Description: File Transfer'); header('Content-Type: application ...
- Fast Matrix Operations UVA - 11992 线段树
题意翻译 有一个r行c列的全0矩阵,有以下三种操作. 1 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素加v 2 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素 ...
- ansible基本模块-command
- UVA - 11029 输出前三位
题意:给定\(a\)和\(n\),输出\(a^n\)的前三位和后三位 后三位快速幂 \(log_{10}(a^n)=n*log_{10}(a)=n*log_{10}(x*y),y<10,x mo ...
- 爬虫之re块解析
一.re 这个去匹配比较麻烦,以后也比较少用,简单看一个案例就行 ''' 爬取数据流程: 1.指定url 2.发起请求 3.获取页面数据 4.数据解析 5.持久化存储 ''' import reque ...
- poj2718
一.题意:给定一串数字,数字没有重复,个数为2~10个.求这些数字分为两份,组合成的两个数的差最小是多少 二.思路:首先可以肯定的是,将这n个数平均分成两份,所得到的最小差一定在其某个组合当中.因此可 ...
- html简单布局
转载:https://jingyan.baidu.com/article/ca41422f7e52831eae99eda2.html
- switch case 注意事项
switch case常见的注意事项: 1.case后面常量值的顺序可以任意,一般按顺序编写 2.default顺序也可以编写在switch中的任意位置 当所有case都不满足时则执行default ...
- (转) CentOS 7添加开机启动服务/脚本
CentOS 7添加开机启动服务/脚本 原文:http://blog.csdn.net/wang123459/article/details/79063703 一.添加开机自启服务 在CentOS 7 ...