输入输出样例
输入 #13 10001011输出 #1
IBFBBBFIBFIIIFF
说明/提示
对于40%的数据,N≤2;
对于全部的数据,N≤10。
noip2004普及组第3题
题解
很多树的题目事实上根本不用把树建立出来
1 #include<iostream> 2 #include<cmath> 3 4 using namespace std; 5 6 int n; 7 char s[1050]; 8 9 void build_tree(int l,int r){ 10 if(r>l){ 11 int mid=(l+r)/2; 12 build_tree(l,mid); 13 build_tree(mid+1,r); 14 } 15 int ans=0,pos=0; 16 for(int i=0;i<=r-l;i++){ 17 if(s[l+i]=='1'){ 18 ans++; 19 } 20 else pos++; 21 } 22 if(pos==0) cout<<'I'; 23 else if(ans==0) cout<<'B'; 24 else cout<<'F'; 25 } 26 27 28 int main(){ 29 cin>>n>>s; 30 int t=pow(2,n); //构建的树的大小为 2^(n+1)-1; 31 build_tree(0,t-1); 32 return 0; 33 }