1 条题解

  • 1
    @ 2023-10-6 21:54:39
    #include <bits/stdc++.h>
    using namespace std;
    int n;
    char s[1<<20];
    char type[1<<20];
    void dfs(int x){
    	if (x>=(1<<n)){
    		if (s[x]=='1'){
    			type[x]='I';
    		}
    		else{
    			type[x]='B';
    		}
    		cout<<type[x];
    		return;//结束条件 
    	}
    	dfs(2*x);
    	dfs(2*x+1);//递归 
    	if (type[2*x]==type[2*x+1]){
    		type[x]=type[2*x];
    	}
    	else{
    		type[x]='F';	
    	}
    	cout<<type[x];
    }
    int main(){
    	cin>>n;
    	for (int i=(1<<n);i<(1<<(n+1));i++){
    		cin>>s[i];
    	}
    	dfs(1);//深搜 
    	return 0;
    }
    
    • 1

    信息

    ID
    1705
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    24
    已通过
    21
    上传者