RNQOJ 21 FBI数

如果字符串全是0输出B,全是1输出I,01混合输出F,如果字符串分解到只剩下一个字符的时候我们可以很简单的判断出来是B串还是I串,如果处在父节点的位置,这里运用递归,通过子节点的返回值来判断子节点是混合还是单一的字符串,这里我用的是,如果全是0,return 0,全是1,return1,这样就可以在父节点进行判断,如果左右子节点的和是0或者2,当前字符串就是单一字符串(即B或I),否则就是F/

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
string s;
int FBI(int be,int en)
{
    if(be==en)
    {
        if(s[be]==‘0‘)
        {
            cout<<"B";
            return 0;
        }
        if(s[be]==‘1‘)
        {
            cout<<"I";
            return 1;
        }
    }
    int mid=(be+en)>>1;
    int lchild=FBI(be,mid);
    int rchild=FBI(mid+1,en);
    if(lchild+rchild==0)
     {
            cout<<"B";
            return 0;
     }
    else if(lchild+rchild==2)
      {
            cout<<"I";
            return 1;
      }
    else
       {
            cout<<"F";
            return 3;
       }
}
int main()
{
  int n;

  while(cin>>n)
  {
      cin>>s;
      int len=1<<n;
      FBI(0,len-1);
      cout<<endl;
  }
    return 0;
}
时间: 2024-10-11 10:42:26

RNQOJ 21 FBI数的相关文章

2016.8.21猜数游戏

1 import random 2 secret=random.randint(1,99) 3 guess=0 4 tries=0 5 print secret 6 print"Alex,I have a secret,It is a number from 1 to 99,you have 6 tries." 7 while guess!=secret and tries<6: 8 guess=input("Enter you guess number:")

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

大数质因解:浅谈Miller-Rabin和Pollard-Rho算法

2017-07-19 08:54 Amphetamine:能发一下代码吗? 应我那位谜一样好友的邀约,我打算好好看一看Miller-Rabin和Pollard-Rho算法.很奇怪,各种地方有很多代码描述详细过程,但我仍旧很懵.也许是我太弱了,不能从那些“鱼龙混杂”的代码中找出本质上的共性.那么,我们现在来讨论一下吧. 首先,大整数分解现在仍然是个世界级的难题,在“公共密钥”的研究上有着重要的作用. !!先判断质数!! 试除法:原始的根号算法 额.不想说了.正经一点. Miller-Rabin:判

【转载】 Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)

说明:本博文假设你已经做好了自己的数据集,该数据集格式和VOC2007相同.下面是训练前的一些修改. (做数据集的过程可以看http://blog.csdn.net/sinat_30071459/article/details/50723212) Faster-RCNN源码下载地址: Matlab版本:https://github.com/ShaoqingRen/faster_rcnn Python版本:https://github.com/rbgirshick/py-faster-rcnn 本

Java基础--关于分支、循环、数组的部分练习题及详解

**-----分支题-----** 1.定义一个int类型的变量为x并赋值为5,如果x<10,则让x实现自增,并输出x最后的值. package com.eduask;  //包名 public class Test {   //类 public static void main(String[] args) {  //主函数 int x=5; //声明一个int类型的变量并初始化值为5 if(x<10){  //if分支,如果x的值小于10,x=5,符合题意,进入分支 x++;   //x实

Android 热修复方案分析

绝大部分的APP项目其实都需要一个动态化方案,来应对线上紧急bug修复发新版本的高成本.之前有利用加壳,分拆两个dex结合DexClassLoader实现了一套全量更新的热更方案.实现原理在Android 基于Proxy/Delegate 实现bug热修复这篇博客中有分解.因为这套方案是在Java端实现,并且是全量更新所以兼容性较好,成功率较高.但是在线上跑了几个月之后就碰到了瓶颈,因为随着业务的增长分拆过之后的dex文件方法数也超过65535个,更换拆包方案的话维护成本太高.同时由于没有做差异

Coderforces 633D:Fibonacci-ish(map+暴力枚举)

http://codeforces.com/problemset/problem/633/D D. Fibonacci-ish Yash has recently learnt about the Fibonacci sequence and is very excited about it. He calls a sequence Fibonacci-ish if the sequence consists of at least two elements f0 and f1 are arbi

自定义UICollectionViewLayout之瀑布流

目标效果 因为系统给我们提供的 UICollectionViewFlowLayout 布局类不能实现瀑布流的效果,如果我们想实现 瀑布流 的效果,需要自定义一个 UICollectionViewLayout  类,实现瀑布流效果.效果如右图. 依赖工具: 我们需要一个图片大小和图片地址的Josn数据, 和 SDWebImage图片加载的第三方工具 RootViewController.m 1 #import "RootViewController.h" 2 #import "

poj1484---判断保险丝是否烧断

题目输入要求: 2 2 10 //设备数n  接下来的操作数m   保险丝能承受最大电流c5 //电器1的电流7 //2的电流1 //反转开关12 //反转开关2 思路:设置一个flag数组,记得每次进入一个数据集,重新设为0,flag从1开始,flag[1]...flag[n]模拟开关状态 将每个device的电流分别存到ci数组里,从1开始存ci[1],存到ci[n],不管ci[0],n<=20,随便给个 大于21的数 接着,再用一个for循环,读入device序号,如果flag[dev]=