NOIP 2004 普及组 sdnu 1168.FBI树

2024-02-21 00:58
文章标签 普及 noip 2004 fbi sdnu 1168

本文主要是介绍NOIP 2004 普及组 sdnu 1168.FBI树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题链接:

http://210.44.14.31/problem/show/1168


考查树的构造和后序遍历。


代码如下:

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
typedef struct node
{char fbi;struct node * leftchild, *rightchild;node() :leftchild(NULL), rightchild(NULL){}		//构造函数的简写
}*NODE;string numstr;void CreatFbiTree(int left,int right,NODE parent)
{if (left == right)		//递归结束条件{if (numstr[left] == '0')parent->fbi = 'B';else parent->fbi = 'I';return;}bool b = false, i = false;			//判断0,1for (int j = left; j <= right; j++){if (numstr[j] == '0'&&!b)b = true;else if (numstr[j] == '1'&&!i)i = true;if (i&&b) break;}if (i&&b)		parent->fbi = 'F';else if (!i&&b)		parent->fbi = 'B';else	parent->fbi = 'I';if (left <= (right + left) / 2){parent->leftchild = new node();CreatFbiTree(left, (right + left) / 2, parent->leftchild);}if ((right + left) / 2 + 1 <= right){parent->rightchild = new node();CreatFbiTree((right + left) / 2 + 1, right, parent->rightchild);}return;
}
void PostTraverseTree(NODE root)		//后序遍历
{if (NULL != root->leftchild)PostTraverseTree(root->leftchild);if (NULL != root->rightchild)PostTraverseTree(root->rightchild);cout << root->fbi;return;
}
int main()
{int n;cin >> n;NODE root=new node();cin >> numstr;CreatFbiTree(0, numstr.length() - 1, root);PostTraverseTree(root);cout << endl;return 0;
}



这篇关于NOIP 2004 普及组 sdnu 1168.FBI树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730104

相关文章

Regionals 2004 Asia - Beijing Argus 小根堆

点击打开链接 小根堆 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokeni

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

XTOJ 1168 Alice and Bob (记忆化搜索)

OJ题目 : click here ~~ 题意分析:给一个数n,Alice可取1,2 , 4 ……2的i次方 ,Bob可取1,3,9……3的i次方。Alice先取,后Bob。轮流来,每个人至少取1。求n变成0,至少需要取多少次。记忆化搜索 = 搜索 + dp 。 AC_CODE #define gril 0#define boy 1using namespace std;const

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目标程序 11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( ) A 296

免费SSL证书大全,加速普及网站实现HTTPS加密

免费SSL证书大全,加速普及网站实现HTTPS加密   SSL 证书用于加密 HTTP 协议,实现网站通过HTTPS加密协议访问。随着国内外各大网站实现全站 HTTPS 协议,以及搜索引擎对使用 HTTPS 协议网站的更加友好,加之互联网对数据和隐私安全的加强,网站添加 SSL 证书并实现 HTTPS 加密协议访问已经成为趋势和必然。 SSL证书大全​zzzjtd.com 而对于给网站添加

讨论运维监控工具的普及程度

在讨论运维监控工具的普及程度时,加入PIGOSS BSM产品的分析是非常有意义的,因为PIGOSS BSM是一款在中国市场具有一定影响力的运维监控工具。 PIGOSS BSM运维监控工具是一款综合性的IT运维监控解决方案,它能够对多层次的IT资源进行监测,包括但不限于性能监测、事件管理、报表管理等功能模块。PIGOSS BSM的一个独特之处在于其拓扑关联配置工具,这使得用户可以根据自身的I

P2239 [NOIP2014 普及组] 螺旋矩阵

P2239 [NOIP2014 普及组] 螺旋矩阵 50分 //O(n^2)复杂度,能算n<=10000的 #include <bits/stdc++.h>using namespace std;//row当前行, column当前列, left:左边界,righ:右边界,top:上边界,bottom:下边界 int n, x, y, ans, row=1, column=0, lef,

NOIP 2015 CCF (CSP -J)初赛真题

第二十 一届全国青少年信息学奥林匹克联赛初赛 ; 普及组C++ 语言试题 竞 赛 时 间: 20 1 5 年 1 0 月 1 1 日 1 4 : 3 0~ 1 6 : 3 0 选 手注 意: • 试腰紙共有7 页,答題紙共有2页,满分100 分。请在答感統上炸答,写在試感纸上的一律无 效。 • 不得使用任何电子设 备(如计算器、手机、 电子词典等》或查阅 任何书籍發 料。 一、单项选择题(

【ACM】----SDNU-OJ 1206

1. 问题描述 1206.蚂蚁感冒 Time Limit: 1000 MS    Memory Limit: 32768 KB Total Submission(s): 18    Accepted Submission(s): 3 Description 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当

信息学奥赛初赛天天练-80-NOIP2015普及组-基础题5-错位排列、二叉树、完全二叉树、叶子节点、完全二叉树叶子节点

NOIP 2015 普及组 基础题5 21 重新排列 1234使得每一个数字都不在原来的位置上,一共有( )种排法 22 一棵结点数为 2015的二叉树最多有( )个叶子结点 2 相关知识点 1) 错位排列 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n) 错排问题最早被尼古拉·伯努利和欧拉研究