题解 P1706 【全排列问题】

· · 题解

简单的回溯……而且不要加任何优化也不会超时……


var n:longint;
    a:array [1..9] of boolean;
    b:array [1..9] of integer;
procedure try(t:longint);
var i,j:longint;
begin
    for i:=1 to n do
    begin
        if not a[i] then 
        begin
            a[i]:=false;
            b[t]:=i;
            if t=n then 
            begin
                for j:=1 to n do 
                    write(a[i]);
            end else try(t+1);
            a[i]:=false;
        end;
    end;
end;
begin
    read(n);
    try(1);
end.