zoukankan      html  css  js  c++  java
  • 洛谷:P1087 FBI树

    #include<iostream>
    #include<cstring>
    #include<cmath>
    using namespace std;
    int N;
    char input[2000];
    char show(int ind,int num){
        //对当前串进行读取与输出
        int flag0=0,flag1=0;
        for(int i=0;i<num;i++){
            if(input[ind+i]=='0')flag0+=1;
            else flag1+=1;
        }
        switch( (flag0>0) + (flag1>0)*2 ){
        case 1:return 'B'
        case 2:return 'I';
        case 3:return 'F';
        }
        return '';
    }
    void f(int ind,int num){
        //读取/输出当前串-下一同长度串-总串,
        //读取/输出当前串需要对当前串的左半部分与右半部分进行处理。除非长度为1
        if(num>1){
            f(ind,num/2);
            f(ind+num/2,num/2);
        }
        cout<<show(ind,num);
    }
    int main(){
        cin>>N>>input;
        f(0,pow(2,N));

        return 0;
    }

    地址:https://www.luogu.com.cn/problem/P1087

  • 相关阅读:
    java语言基础
    常用4种限流算法介绍及比较
    如何用Redis实现分布式锁
    翻转字符串
    JAVA之io流
    JAVA之Collections集合
    【转】IT行业岗位以及发展方向
    JAVA之字符串
    JAVA之数组
    Linux之判断字符串是否为空
  • 原文地址:https://www.cnblogs.com/forwhat00/p/13220134.html
Copyright © 2011-2022 走看看