FBI树
pascal吧
全部回复
仅看楼主
level 2
var
s:ansistring;
a:array[0..256]of longint;
i,n:longint;
function fbi(s,e:longint):ansistring;
var
mid:longint;
begin
if s=e then
begin
if a[e]-a[s-1]=0 then fbi:='B';
if a[e]-a[s-1]=e-s+1 then fbi:='I'
end
else begin
mid:=(s+e) div 2;
fbi:=fbi(s,mid)+fbi(mid+1,e)+'F';
end;
end;
begin
readln(n);
readln(s);
n:=length(s);
a[0]:=0;
for i:=1 to n do
a[i]:=a[i-1]+ord(s[i])-ord('0');
writeln(fbi(1,n));
end.
求查错
2014年04月20日 12点04分 1
level 2
[疑问]
2014年04月20日 12点04分 3
level 2
求解
2014年04月20日 12点04分 4
level 13
var s:ansistring;
i,j,n:longint;
procedure hx(l,r:longint);
var ni,nb,i,mid:longint;
begin
if l<>r then
begin
mid:=(l+r) div 2;
hx(l,mid);
hx(mid+1,r);
end;
ni:=0;nb:=0;
for i:=l to r do
case s[i] of
'1':inc(ni);
'0':inc(nb);
end;//end case
if (ni>0) and (nb>0) then write('F')
else if ni>0 then write('I')
else write('B');
end;
begin
readln(n);
readln(s);
hx(1,length(s));
writeln;
end.
2014年04月21日 05点04分 5
能不能用我的方法呢
2014年04月21日 11点04分
1