搜索
热搜: NOIP OIer 神牛
查看: 318|回复: 0

帮我看看

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-26 08:43:03 | 显示全部楼层 |阅读模式
#include<bits/stdc++.h>
using namespace std;
//这道题像模拟题!
bool x[2000];
int y[5000],c,g,f,m,n,k,cn,bn,dn,mm;
char z,z1[20];
int aa(int l){
        if(mm==g) return 0;
        if(y[l*2]==0){
        if(y[l]==1) cout<<"B";
        if(y[l]==2) cout<<"I";
                if(y[l]==3) cout<<"F";       
                mm++;
                 y[l]=0;
                 if(l%2==0) aa(l+1);
                 else aa(l/2);
        }
        else aa(l*2);
}
int main()
{
        cin>>m;
        n=1;
        k=1;
        for(int a=1;a<=m;a++){
                n=n*2;
                k=k+n;
        }
        g=k;
        f=n;
        for(int a=1;a<=n;a++){
                cin>>z;
                if(z=='0') x[a]=0;
                else if(z=='1') x[a]=1;
        }
        for(int a=1;a<=n;a++){
                if(x[a]==1) cn=1;
                else bn=1;
        }
        if(cn==1&&bn==1) y[1]=3;
        else{
                if(cn==1){
                        for(int a=1;a<=k;a++) cout<<"I";
                        return 0;
                }
                if(bn==1){
                        for(int a=1;a<=k;a++) cout<<"B";
                        return 0;
                }
        }
        cn=0;
        bn=0;
        dn++;
        for(int a=1;a<=m;a++){
                 n=n/2;
                k=f/n;
                for(int b=1;b<=k;b++){
                        for(c=(b-1)*n+1;c<=n*b;c++){
                                if(x[c]==1) cn=1;
                                else bn=1;
                        }
                        dn++;
                        if(cn==1&&bn==1) y[dn]=3;
                        else{
                                if(bn==1) y[dn]=1;
                if(cn==1) y[dn]=2;
                        }
                        cn=0;
                        bn=0;
                }
        }
        n=f/2;
        aa(n);
        return 0;
}
为什么这么长??

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表