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

土特产网站模板彩票网站建设服务

土特产网站模板,彩票网站建设服务,wordpress 列表页面,重庆建设工程质量信息网本文由Jzwalliser原创#xff0c;发布在CSDN平台上#xff0c;遵循CC 4.0 BY-SA协议。 因此#xff0c;若需转载/引用本文#xff0c;请注明作者并附原文链接#xff0c;且禁止删除/修改本段文字。 违者必究#xff0c;谢谢配合。 个人主页#xff1a;blog.csdn.net/jzw… 本文由Jzwalliser原创发布在CSDN平台上遵循CC 4.0 BY-SA协议。 因此若需转载/引用本文请注明作者并附原文链接且禁止删除/修改本段文字。 违者必究谢谢配合。 个人主页blog.csdn.net/jzwalliser 题目 洛谷 P1087 [NOIP2004 普及组] FBI 树 [NOIP2004 普及组] FBI 树 题目描述 我们可以把由 0 和 1 组成的字符串分为三类全 0 串称为 B 串全 1 串称为 I 串既含 0 又含 1 的串则称为 F 串。 FBI 树是一种二叉树它的结点类型也包括 F 结点B 结点和 I 结点三种。由一个长度为 2 N 2^N 2N 的 01 串 S S S 可以构造出一棵 FBI 树 T T T递归的构造方法如下 T T T 的根结点为 R R R其类型与串 S S S 的类型相同若串 S S S 的长度大于 1 1 1将串 S S S 从中间分开分为等长的左右子串 S 1 S_1 S1​ 和 S 2 S_2 S2​由左子串 S 1 S_1 S1​ 构造 R R R 的左子树 T 1 T_1 T1​由右子串 S 2 S_2 S2​ 构造 R R R 的右子树 T 2 T_2 T2​。 现在给定一个长度为 2 N 2^N 2N 的 01 串请用上述构造方法构造出一棵 FBI 树并输出它的后序遍历序列。 输入格式 第一行是一个整数 N ( 0 ≤ N ≤ 10 ) N(0 \le N \le 10) N(0≤N≤10) 第二行是一个长度为 2 N 2^N 2N 的 01 串。 输出格式 一个字符串即 FBI 树的后序遍历序列。 样例 #1 样例输入 #1 3 10001011样例输出 #1 IBFBBBFIBFIIIFF提示 对于 40 % 40\% 40% 的数据 N ≤ 2 N \le 2 N≤2 对于全部的数据 N ≤ 10 N \le 10 N≤10。 noip2004普及组第3题 想法 题目大意就是把一个字符串不停地分割成等长的两半然后建立二叉树对其进行后序遍历。来解读一下样例。 根据输入我们可以获得这样的二叉树 #mermaid-svg-36pJ4ahTGpLIJXRD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .error-icon{fill:#552222;}#mermaid-svg-36pJ4ahTGpLIJXRD .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-36pJ4ahTGpLIJXRD .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-36pJ4ahTGpLIJXRD .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-36pJ4ahTGpLIJXRD .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-36pJ4ahTGpLIJXRD .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-36pJ4ahTGpLIJXRD .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-36pJ4ahTGpLIJXRD .marker{fill:#333333;stroke:#333333;}#mermaid-svg-36pJ4ahTGpLIJXRD .marker.cross{stroke:#333333;}#mermaid-svg-36pJ4ahTGpLIJXRD svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-36pJ4ahTGpLIJXRD .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .cluster-label text{fill:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .cluster-label span{color:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .label text,#mermaid-svg-36pJ4ahTGpLIJXRD span{fill:#333;color:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .node rect,#mermaid-svg-36pJ4ahTGpLIJXRD .node circle,#mermaid-svg-36pJ4ahTGpLIJXRD .node ellipse,#mermaid-svg-36pJ4ahTGpLIJXRD .node polygon,#mermaid-svg-36pJ4ahTGpLIJXRD .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-36pJ4ahTGpLIJXRD .node .label{text-align:center;}#mermaid-svg-36pJ4ahTGpLIJXRD .node.clickable{cursor:pointer;}#mermaid-svg-36pJ4ahTGpLIJXRD .arrowheadPath{fill:#333333;}#mermaid-svg-36pJ4ahTGpLIJXRD .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-36pJ4ahTGpLIJXRD .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-36pJ4ahTGpLIJXRD .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-36pJ4ahTGpLIJXRD .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-36pJ4ahTGpLIJXRD .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-36pJ4ahTGpLIJXRD .cluster text{fill:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD .cluster span{color:#333;}#mermaid-svg-36pJ4ahTGpLIJXRD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-36pJ4ahTGpLIJXRD :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 10001011 F 1000 F 1011 F 10 F 00 B 10 F 11 I 1 I 0 B 0 B 0 B 1 I 0 B 1 I 1 I 那么后序遍历输出就是IBFBBBFIBFIIIFF。 不过写程序的时候不需要刻意地、人为地去建立、维护一个二叉树只需要一个递归函数并按照一定的顺序输出就可以达到效果。 实现 把字符串切成等长的两段分别递归。判断字符串类型。如果当前的字符串只有一个字符那就return。由于是后序遍历所以在两次递归操作完成后再输出。 题解 C #includeiostream using namespace std; string fbi(string str){ //递归建树if(str.size() 1){ //字符串只有一个字符了if(str 1){ //I串cout I;return I;}else{ //B串cout B;return B;}}else{ //字符串不止一个字符string a fbi(str.substr(0,str.size() / 2)); //处理字符串前半部分string b fbi(str.substr(str.size() / 2,str.size() / 2)); //处理字符串后半部分string ftype a b;if(ftype II){ //如果两个子串都是I串cout I; //那么这个字符串也是I串return I;}else if(ftype BB){ //如果两个子串都是B串cout B; //那么这个字符串也是B串return B;}else{ //否则这个字符串就是F串cout F;return F;}} }int main(){int length; //长度string str; //字符串cin length str; //输入fbi(str); //递归return 0; }Python ans length input() #获取长度 string input()[0:2 ** int(length)] #不知道为什么Python不截取字符串会WA所以这里还是操作一下 def fbi(string): #递归建树global ans #将答案存放到ans里面if len(string) 1: #字符串只有一个字符了if string 1: #I串ans Ireturn Ielse: #B串ans Breturn Belse: #字符串不止一个字符a fbi(string[0:int(len(string) / 2)]) #处理字符串前半部分b fbi(string[int(len(string) / 2):]) #处理字符串后半部分ftype a bif ftype II: #如果两个子串都是I串ans I #那么这个字符串也是I串return Ielif ftype BB: #如果两个子串都是B串ans B #那么这个字符串也是B串return Belse: #否则这个字符串就是F串ans Freturn F fbi(string) #递归 print(ans)难度 难度★☆☆☆☆ 这道题其实还好主要是题目有点难读。需要认真理解才能看懂。之后的操作应该都比较简单吧递归输出。 结尾 你是怎么想的欢迎留言我们下期再见(˵¯͒〰¯͒˵)
http://www.pierceye.com/news/793225/

相关文章:

  • 网站下载音乐网站开发公司知乎
  • 什么样式表一般用于大型网站什么是seo搜索
  • 做网站用vue还是用jquery济宁网站建设 中企动力临沂
  • 网站专题教程最吸引人的营销广告词
  • 瑞安网站网站建设如何推广自己的店铺
  • 建设网站花都水泥公司网站建设
  • asp网站怎么下载源码农业做的好的网站
  • 导购网站怎么做视频教学网页设计与制作教程第5版
  • 建设部施工安全管理网站网站建设公司如何
  • 企业商城建站公司网站页面加密
  • 昆山教育云平台网站建设软件工程师考试报名
  • ps做网站大小尺寸大连开发区商场
  • 化妆品网站建设网站右键禁止
  • wordpress 没有样式表网站如何免费做SEO优化
  • 青岛有没有专门做淘宝网站中国建设人才网站
  • 网站移动端是什么问题吗怎样自己做免费的网站
  • 做网站没有做退钱宁波品牌策划公司
  • 网站备案 不关站家乡网页制作模板
  • 成都网站建设企业 排名网络营销推广方案ppt
  • 阳西住房和城乡规划建设局网站微信公众号商城制作
  • 石家庄自助建站软件邯郸做紧固件网站
  • 做川菜的网站动画制作网页
  • 网站建设的英文域名注册需要什么条件
  • wordpress管理系统贵州seo和网络推广
  • 网站第二次备案设计方案审核合格后由谁签字确认
  • 网页设计和网站编辑wordpress 页面瀑布流
  • 福田网站建设龙岗网站建设ie的常用网站
  • 网站推广途径和推广要点地产网站方案
  • 用asp做的网站2021互联网公司100强
  • 网站运营无经验可以做吗垂直类网站怎么做