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

相关文章

洛谷:P1085 [NOIP2004 普及组] 不高兴的津津

1. 题目链接 https://www.luogu.com.cn/problem/P1085 P1085 [NOIP2004 普及组] 不高兴的津津 2. 题目描述 题目描述:津津每天要上课还要上辅导班,每天学习超过8小时就不开心,帮忙检查下津津的下周日程安排,然后告诉我她哪天不高兴 输入:7行数据,每行2个小于10的非负整数,分别代表在学校的时间和辅导班的时间 输出:哪天最不高兴,如果有

2004年 联想员工亲历联想大裁员:公司不是我的家 (网易裁员事件相关文章)

今天,恐怕是联想历史上规模最大的一次大裁员。我们部门9个人,今天送走了三个,还有三个要转岗,剩下三个。整个研究院走了30多人,转岗20多人。这是我经历的第二次所谓战略性调整,有很多感触,却又好像什么都堵在心里,说不出来。干脆简单记录下这段往事,提醒自己。     [联想精细化裁员]      昨天晚上,研究院秘密召开紧急会议。有20多位“责任经理”参加,我才清楚了整个裁员过程。3月6日启动计

2004年-2022年 全国31省市场分割指数数据

市场分割指数在经济学领域是一个关键的概念,特别是在评估不同区域市场一体化水平时。陆铭等学者深入研究了市场分割问题,并对市场分割指数给出了定义:它是一个衡量在相同时间点不同区域或同一区域在不同时间点的某类商品相对价格差异的指标。这个指数反映了市场内部各部分之间的分离程度,以及市场一体化的水平。 陆铭的研究表明,市场分割与资源配置的效率之间存在明显的负相关关系。具体来说,市场分割指数与资源配置效率的

洛谷题解 - P1036 [NOIP2002 普及组] 选数

目录 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示代码 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​,以及 1 1 1 个整数 k k k( k < n k<n k<n)。从 n n n 个整数中任选 k k k 个整数相加,可分别得到一系列的和。例

关于Linux桌面系统的普及 这里是一些建议

Linux 桌面系统在普及方面面临一些挑战,尽管它在服务器和开发者社区中非常受欢迎。为了提高其普及率,可以从以下几个方面着手: 1. 改善用户体验 用户界面友好性:提升桌面环境的易用性和美观度,使其更符合普通用户的习惯。例如,改进 GNOME、KDE 等桌面环境的用户体验。简化安装过程:提供更直观、简洁的安装向导,降低新用户的安装门槛。硬件兼容性:提升对各种硬件的自动识别和支持,减少驱动安装和

【图割】最大流/最小割算法详解(Yuri Boykov and Vladimir Kolmogorov,2004 )

本博客主要翻译了Yuri Boykov and Vladimir Kolmogorov在2004年发表的改进最大流最小割算法用于计算机视觉的论文:An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision 内容上参考了(好吧,我承认就是无耻的抄袭)博客:CV | Max F

2001NOIP普及组真题 3. 求先序排列

线上OJ: 线上OJ: 【01NOIP普及组】求先序排列 核心思想: 1、先构建二叉树,再按照要求输出 2、构建的方法,可以使用字符数组,也可以使用字符串 3、构建树的核心是:通过递归,根据后序遍历和中序遍历构建树 第一步、后序遍历的最后一个一定是根 第二步、在中序遍历中找到根 第三步、根左侧的都为左子树,右侧的都为右子树。对左子树和右子树分别再次递归 传入参数说明: int le

2001NOIP普及组真题 4. 装箱问题

线上OJ: 【01NOIP普及组】装箱问题 核心思想: step1、要求箱子的剩余空间为最小,即要求 箱子内体积最大 step2、本题没有提到价值w,但我们可将每个物品的体积 v 等价于每个物品的价值w。 step3、所以箱内物品的体积和最大,即为箱内物品的总价值最大。 此时直接套用01背包模板代码即可 题解代码: #include <bits/stdc++.h>using namesp

【文末附gpt升级秘笈】AI热潮降温与AGI场景普及的局限性

AI热潮降温与AGI场景普及的局限性 摘要: 随着人工智能(AI)技术的迅猛发展,AI热一度席卷全球,引发了广泛的关注和讨论。然而,近期一些学者和行业专家对AI的发展前景提出了质疑,认为AI热潮将逐渐降温,且通用人工智能(AGI)在场景普及上将面临诸多挑战。本文基于与《Core Java》作者Cay Horstmann的对话,结合当前AI发展的实际情况,对AI热潮降温的原因以及AGI场景普及的局

2002NOIP普及组真题 4. 过河卒

线上OJ 地址: 【02NOIP普及组】过河卒 核心思想: 对于此类棋盘问题,一般可以考虑 dp动态规划、dfs深搜 和 bfs广搜。 解法一:dp动态规划 方法:从起点开始逐步计算到达每个位置的路径数。对于每个位置,它的路径数 等于 左边和上边位置的路径数之和(如果存在的话),同时要考虑到不能走被禁止的位置。 状态转移方程: d p [ i ] [ j ] = d p [ i −