求助!!!!

P1087 [NOIP2004 普及组] FBI 树

RE都变成了WA ```cpp #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<string> using namespace std; string a[3000]; string S; int n; void build(int k){ for(int i=0;i<a[k].size()/2;i++) a[k*2]=a[k*2]+a[k][i]; for(int i=a[i].size()/2;i<a[k].size();i++) a[k*2+1]=a[k*2+1]+a[k][i]; if(a[k*2].size()==1&&a[k*2+1].size()==1)return; build(k*2); build(k*2+1); } char kind(string s){ //F:0+1 B:0 I:1 if(s[0]=='1') { int flag=1; for(int i=1;i<s.size();i++) { if(s[i]=='0'){flag=0;break;} } if(flag==1)return 'I'; else return 'F'; } if(s[0]=='0') { int flag=1; for(int i=1;i<s.size();i++) { if(s[i]=='1'){flag=0;break;} } if(flag==1)return 'B'; else return 'F'; } } void work(int k) { if(a[k].size()==1) { cout<<kind(a[k]); return; } work(k*2); work(k*2+1); } int main(){ cin>>n; cin>>S; a[1]=S; if(S.size()==1) { work(1); return 0; } build(1); work(1); return 0; } ```
by Priori_Incantatem @ 2019-03-04 09:59:19


说说思路
by Robert_Bumaro @ 2019-08-12 22:12:55


|