题解
2023-08-20 09:52:58
发布于:浙江
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n;
char a[1030];
int dfs(int l,int r){
if(l==r){
if(a[l]=='1'){
printf("I");
return 1;
}
else{
printf("B");
return 0;
}
}
else{
int x=dfs(l,(l+r)/2);
int y=dfs((l+r)/2+1,r);
if((x==1&&y==0)||(x==0&&y==1)||x==2||y==2){
printf("F");
return 2;
}
if(x==1&&y==1){
printf("I");
return 1;
}
if(x==0&&y==0){
printf("B");
return 0;
}
}
}
int main(){
scanf("%d",&n);
cin>>a;
//IBFBBBFIBFIIIFF
//BBBBIFFBIFIBFFF
dfs(0,pow(2,n)-1);
return 0;
}
这里空空如也
有帮助,赞一个