Vét cạn khử đệ quy Đồ thị trạng thái Quy hoạch động trạng thái QBSELECT, QBGAME, CHESSCBG, LEM2, LEM3, MIXUP2, LASCALE, CHNREST (), VMMTFIVE Phương pháp xử lí trạng thái (Vét cạn khử đệ quy Đồ thị trạng thái Quy hoạch động trạng thái)
Trang 1
Tôi : t
a
,
Trang 2I
:
[i] (1<=i<=n) |a[i]|<=10^8 (k<=n)
C (|C|<=2*(10^9)) cho
)
)
0,1
Var n:byte; C:longint;
A:array[1 18]of longint;
x,bestSelection:array[1 18]of byte;
Procedure try(i:byte);
Var
j,k:byte;
Test:longint;
Begin
For j:=0 to 1 do begin
x[i]:=j;
if (i<n) then try(I+1) else
begin
test=0;
for k:=1 to n do inc(test,x[k]*a[k]);
if ((test<=C)and (test>bestsum)) then begin
bestsum:=test;
bestselection:=x;
end;
end;
End;
End;
Var n:byte; bestsum ,C:longint; bestselection:longword;
A:array[1 18]of longint;
Procedure duyet;
Var I,k:byte; Test:longint; S,last:longword;
Begin
Bestsum:=0;
Bestselection:=0;
last:=(1 shl n)- 1; For s:=1 to last do begin
Test:=0;
For i:=0 to n-1 do
inc(Test,((s shr I) and 1)*a[i+1]);
If (Test>bestsum) and (Test <=C) then begin
bestsum:= Test;
bestselection:=s;
End;
End;
End;
Trang 3(n*(2^n) , d ng
Var
n:byte;
C,bestsum:longint;
A:array[1 18]of longint;
bestselection:longword;
Procedure duyettrangthaicocchan;
Var I,k:byte;
T : array[0 1 shl 18]of longint;
S,p,last:longword;
Begin
-
Bestsum:=0; Bestselection:=0; T[0]:=0;
For s:=1 to last do begin
For i:=0 to n-1 do
If (((s shr i) and 1)=1) then break;
P:= s and (not (1 shl i)); // P <s
i i 0) T[s]:=T[p] + a[i+1];
If (T[s]>bestsum) and (T[s]<=C) then begin
bestsum:=t[s];
bestselection:=s;
End;
End;
End;
(i*(2^n)) i N 1) i ngay khi i=0
Trang 4II :
: CHESSCBG (http://vn.spoj.pl/problems/CHESSCBG/) M t bàn c th là m t b ng gồm 4 dòng, 4 c t M i th c là m t cách s p x p 8 quân c , hai quân khác nhau t ra là cho hai th c 1 và 2, hãy tìm m t s ít nh c di chuy chuy n t th 1 sang th 2; m c di chuy n quân là m t l n chuy n quân c sang ô tr ng k c nh v i ô quân c ng Input: T ă n gồm 8 dòng, m i dòng là m t xâu nh dài 4 mà s 0 ng v i v trí có ho c không có quân c B n dòng u là th c 1, b n dòng sau là th c 2 Output: Gồm 1 dòng duy nh t là s c chuy n quân ít nh t 16bit ồ ồ ồ
III Quy H :
ă 0 0 sau: 0
*n Output: t Sau khi
: (n!) =20 i
0 0 /s y trong ă :
0
+1
T[S S S {a,b,c, d i ,b,c,d T[ {1,2,5} = 10011= 19 :
- T[ {2,5} = 10010 =18 } + a[3,1];
- T[ {1,5} = 10001 =17 } + a[3,2];
- T[ {1,2} = 00011 = 3 } + a[3,5];
Trang 53 => T[19
: s k = 1) i S [ { = (1 shl n)-1 ] 0 1 giây ă
(n*(2^n))
IV
:
QBSELECT, QBGAME, CHESSCBG, LEM2, LEM3, MIXUP2, LASCALE, CHNREST (*), VMMTFIVE