当前位置: 首页 > news >正文

每日一题Day6(递归专栏---FBI数)

个人主页:小则又沐风

个人专栏:<数据结构>

<竞赛专栏>

<C语言>

今天我们将要学习地算法是递归.

提起来递归大家一定不会陌生,因为我们地二叉树 快速排序,归并排序.....都使用了递归.那么我们要怎么借助递归来解决问题呢?

我们来看使用递归地场景.

以我们地dfs为例.我们想要前序遍历这棵二叉树,即左子树---根---右子树.

我们会发现我们在解决这个问题时我们先访问根的左子树在访问左子树地左子树,

这样地问题是一个重复地问题,当问题可以分为一个又一个子问题地时候,并且我们在重复地解决一个问题地时候,我们就可以思考我们是否可以使用递归来解决这个问题.

来看dfs的逻辑,我们设计dfs函数后我们想要使用递归来解决,既然如此那我们就认定这个dfs函数一定能够解决我们的问题,所以我们只需要写遍历的逻辑就可以了.

所以我们写出了dfs(root[left]); dfs(root[right]);

这样我们的逻辑就基本完成了,下面是我们回归的条件,什么时候就不能继续递归了,那就是遍历到了叶子节点,所以我们写上了 if root=NULL return;

这就是我们用递归解决问题的模板,先观察题目是否有重复的子问题,认定我们的函数能解决这个问题,写递归逻辑,写回归条件.

下面我们来实战:

题目:FBI 树

这道题是我特意找和二叉树遍历相似的题,我们来读题,题目将会给出我们一个字符串让我们根据如果只有1则为I串,如果只有0则为B串,最后其他的为F串.让我们以这个逻辑让我们构造一个FBI树,然后输出他的后序遍历.我们很容易的看到这个问题能够分为一个又一个的子问题,所以我们使用递归来解决他.

算法原理


我们先判断这个串是什么串.

怎么判断呢?我们可以拿到字符串的左边和右边,我们求出这个字符串的个数,然后我们求出这个字符串的总和,如果等于我们的字符串长度那么就表示这串字符串全部是1,如果字符串的总和是0那么就全部是0,最后剩下的就是F串.

下面我们直接来解决问题.

代码实现:

#include<iostream> using namespace std; const int N=1050; int a[N]; int n; int f[N]; void dfs(int left,int right) { if(left>right) { return; } char ret; int an=f[right]-f[left-1]; if(an==right-left+1) { ret='I'; }else if(an==0) { ret='B'; }else { ret='F'; } if(left==right) { cout<<ret; return; } int mid=(left+right)/2; dfs(left,mid); dfs(mid+1,right); cout<<ret; } int main() { cin>>n; for(int i=1;i<=(1<<n);i++) { char ch; cin>>ch; a[i]=ch-'0'; f[i]=f[i-1]+a[i]; } dfs(1,1<<n); return 0; }

以上就就是今天的所有内容.

http://www.jsqmd.com/news/485366/

相关文章:

  • 情绪记录分析程序,记录每日情绪与触发事件,找出影响最大因素,给出调节建议。
  • 探索最优广义回归神经网络数据预测模型:DBO优化算法加持
  • OpenClaw 虚拟机保姆级部署指南
  • 大模型Agent技术全面升级
  • OpenClaw配置
  • 从CPU低延迟、GPU高带宽到大规模GPU集群
  • 用北方苍鹰优化算法优化随机配置网络SCN参数
  • 扣子(Coze)零基础入门全攻略|扣子(Coze)核心功能详解,含长期记忆、快捷指令、音视频处理及私有化部署指南
  • 揭秘CAIE认证:证书含金量、对就业的实际帮助及项目实战模块
  • 金融平台如何扩展KindEditor的PPT动态内容自动填充?
  • WangEditor在Vue2中如何处理Word文档中的特殊格式粘贴?
  • Claude上下文再大,也绕不开agent开发的“分治”艺术
  • 为什么说杨建允团队是GEO优化的顶级服务商? - 博客万
  • 理性评估:对比主流AI证书,赛一认证对应届生求职的实际加成
  • windows10本地安全隔离配置openclaw
  • 国产化控件如何实现KindEditor的PDF自动格式转换?
  • 解锁论文写作新姿势:书匠策AI,你的期刊论文智能导航员
  • 2026年佛山推荐售后好的木纹砖生产厂,哪家更值得选全揭秘 - 工业品网
  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • 海洋主题文本聚类研究与可视化分析
  • 2026年上海靠谱中央空调排名,实力强的厂家推荐 - mypinpai
  • 为什么积分运算电路在反馈电容上要并联电阻
  • 教程分享:Vue2如何结合百度WebUploader插件实现大文件上传的进度可视化?
  • 航空航天Web服务如何基于百度WebUploader实现三维模型文件的跨平台分块校验?
  • 分布式驱动电动汽车模型:前轮主动转向与直接横摆力矩联合控制开发之路
  • 2026年佛山靠谱的GEO优化公司排名,知名GEO优化企业大盘点 - 工业推荐榜
  • 电动汽车集群并网的分布式鲁棒优化调度 电动汽车集群优化 采用matlab+yalmip编程,设...
  • 政务CMS如何扩展KindEditor的多格式文档智能填充?
  • CAIE认证课程体系全景图:从基础到进阶,覆盖哪些核心技术?
  • 通信工程毕业设计最新题目汇总