什么鬼排版
by 薇子 @ 2018-04-01 18:06:39
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int n,m;
char s,tree[2000];
int l[2000],r[2000];
void p(int k)
{
if(k==0)
return;
p(l[k]);
p(r[k]);
putchar(tree[k]);
}
int main()
{
scanf("%d",&n);
m=1<<n;
for(int i=m;i<=m*2-1;i++)
{
cin>>s;
if(s=='1')
tree[i]='I';
else
tree[i]='B';
}
for(int i=m-1;i>=1;i--)
{
l[i]=i*2;
r[i]=i*2+1;
char x,y;
x=tree[i*2];
y=tree[i*2+1];
if(x=='F'||y=='F')
tree[i]='F';
else if(x!=y)
tree[i]='F';
else
tree[i]=x;
}
p(1);
putchar('\n');
return 0;
}
by 薇子 @ 2018-04-01 18:15:50
```cpp
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int n,m;
char s,tree[2000];
int l[2000],r[2000];
void p(int k)
{
if(k==0) return;
p(l[k]);
p(r[k]);
putchar(tree[k]);
}
int main()
{
scanf("%d",&n);
m=1<<n;
for(int i=m; i<=m2-1; i++)
{
cin>>s;
if(s=='1') tree[i]='I';
else tree[i]='B';
}
for(int i=m-1; i>=1; i--)
{
l[i]=i2;
r[i]=i2+1;
char x,y;
x=tree[i2];
y=tree[i*2+1];
if(x=='F'||y=='F') tree[i]='F';
else if(x!=y) tree[i]='F';
else tree[i]=x;
}
p(1);
putchar('\n');
return 0;
}
```
by bcku1 @ 2018-04-13 13:05:06
by STPGUY @ 2018-05-27 09:37:05