我想知道八皇后问题的空间和时间复杂度,以及计算过程,谢谢
发布网友
发布时间:2022-04-24 05:23
我来回答
共1个回答
热心网友
时间:2023-10-31 13:23
直接给你pascal的源程序。
program eightqueens;
var
x:array[1..8] of intgeer;
a,b,c:array[-7..16] of boolean;
i,count:integer;
q:boolean;
procere print;
var
i:integer;
begin
for i:=1 to 8 fo
write(x[i]:2);
inc(coint);
writeln('count=',count);
end;
procere try(i:integer);
var
j:integer;
begin
for j:=1 to 8 do
begin
if a[j] and c[i-j] and b[i+j] then
begin
x[i]:=j;
a[j]:=false;
c[i-j]:=false;
b[i+j]:=false;
if i<8 then try (i+1)
else print;
a[j]:=true;
c[i-j]:=true'
b[i+j]:=true;
end; end;end;
begin
for i:=1 to 8 do
a[i]:=true;
for i:=-7 to 7 do
c[i]:=true;
for i:=2 to 16 do
b[i]:=true;
count:=0;
try(1);
end.
时空复杂度没超过noip竞赛的要求。
热心网友
时间:2023-10-31 13:23
直接给你pascal的源程序。
program eightqueens;
var
x:array[1..8] of intgeer;
a,b,c:array[-7..16] of boolean;
i,count:integer;
q:boolean;
procere print;
var
i:integer;
begin
for i:=1 to 8 fo
write(x[i]:2);
inc(coint);
writeln('count=',count);
end;
procere try(i:integer);
var
j:integer;
begin
for j:=1 to 8 do
begin
if a[j] and c[i-j] and b[i+j] then
begin
x[i]:=j;
a[j]:=false;
c[i-j]:=false;
b[i+j]:=false;
if i<8 then try (i+1)
else print;
a[j]:=true;
c[i-j]:=true'
b[i+j]:=true;
end; end;end;
begin
for i:=1 to 8 do
a[i]:=true;
for i:=-7 to 7 do
c[i]:=true;
for i:=2 to 16 do
b[i]:=true;
count:=0;
try(1);
end.
时空复杂度没超过noip竞赛的要求。
热心网友
时间:2023-10-31 13:23
直接给你pascal的源程序。
program eightqueens;
var
x:array[1..8] of intgeer;
a,b,c:array[-7..16] of boolean;
i,count:integer;
q:boolean;
procere print;
var
i:integer;
begin
for i:=1 to 8 fo
write(x[i]:2);
inc(coint);
writeln('count=',count);
end;
procere try(i:integer);
var
j:integer;
begin
for j:=1 to 8 do
begin
if a[j] and c[i-j] and b[i+j] then
begin
x[i]:=j;
a[j]:=false;
c[i-j]:=false;
b[i+j]:=false;
if i<8 then try (i+1)
else print;
a[j]:=true;
c[i-j]:=true'
b[i+j]:=true;
end; end;end;
begin
for i:=1 to 8 do
a[i]:=true;
for i:=-7 to 7 do
c[i]:=true;
for i:=2 to 16 do
b[i]:=true;
count:=0;
try(1);
end.
时空复杂度没超过noip竞赛的要求。
热心网友
时间:2023-10-31 13:23
直接给你pascal的源程序。
program eightqueens;
var
x:array[1..8] of intgeer;
a,b,c:array[-7..16] of boolean;
i,count:integer;
q:boolean;
procere print;
var
i:integer;
begin
for i:=1 to 8 fo
write(x[i]:2);
inc(coint);
writeln('count=',count);
end;
procere try(i:integer);
var
j:integer;
begin
for j:=1 to 8 do
begin
if a[j] and c[i-j] and b[i+j] then
begin
x[i]:=j;
a[j]:=false;
c[i-j]:=false;
b[i+j]:=false;
if i<8 then try (i+1)
else print;
a[j]:=true;
c[i-j]:=true'
b[i+j]:=true;
end; end;end;
begin
for i:=1 to 8 do
a[i]:=true;
for i:=-7 to 7 do
c[i]:=true;
for i:=2 to 16 do
b[i]:=true;
count:=0;
try(1);
end.
时空复杂度没超过noip竞赛的要求。