[123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
Transcript of [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
-
8/10/2019 [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
1/5
Bi ton ng i ca robot to thnh s nh phn ln nht
Cho mtbng vung m dng, n ct (2
-
8/10/2019 [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
2/5
V d:
Ta c s 1011 (gi tr thp phn l 11)+ Ghp thm s 1 vo s l 10111 (gi tr mi l 23 = 2*11+1)+ Ghp thm s 0 vo s l 10110 (gi tr mi l 22 = 2*11+0)
Ti (i,j) ch c th n t (i-1, j) hoc (i, j-1), gi tr thu cl ln nhtth phi n t c gi tr ln hn,nh vy cng thc truy hi s l:
F[i, j] = 2 * max( F[i, j-1], F[i-1, j] ) + A[i, j]
2. Tnh bng phng n
thun tin ta cn t hng ro: ct 0 v dng 0 ca c A v F u t gi tr -1.Ring A[1, 0] hoc A[0, 1] cn t gi tr 0 bt u tnh th F[1,1] = A[1, 1].
3. Truy vt
Bng th tc quy: Bt u t (m,n), qu trnh truy vt kt thc khi tatruy nn (1,1) v ra gi tr F[m,n], ti mi bc truy vtta s truy vt c gi tr lnhn trong 2 : (m-1,n) v (m,n-1).
Ci t bng ngn ng Pascal:
PROGRAM robot;
VAR A:ARRAY[0..30,0..30] OF BYTE;
F:ARRAY[0..30,0..30] OF LONGINT;
m,n:INTEGER;
PROCEDURE Enter;
VAR i,j:INTEGER;
BEGIN
readln(m,n);
FOR i:=1 TO m DO
BEGINFOR j:=1 TO n DO read(A[i,j]);
readln;
END;
FOR i:=0 TO m DO A[i,0]:=-1;
FOR j:=0 TO n DO A[0,j]:=-1;
END;
-
8/10/2019 [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
3/5
FUNCTION Max(a,b:LONGINT):LONGINT;
BEGIN
IF (a>b) THEN Max:=a ELSE Max:=b;
END;
PROCEDURE Optimize;
VAR i,j:INTEGER;
BEGIN
FOR i:=0 TO m DO F[i,0]:=-1;
FOR j:=0 TO n DO F[0,j]:=-1;
F[0,1]:=0;
FOR i:=1 TO m DO
FOR j:=1 TO n DOF[i,j]:=2*Max(F[i,j-1],F[i-1,j])+A[i,j];
END;
PROCEDURE Trace(i,j:INTEGER);
BEGIN
IF (i=1) AND (j=1) THEN
writeln(F[m,n])
ELSE
BEGIN
IF F[i,j-1]>F[i-1,j] THEN
Trace(i,j-1)
ELSE
Trace(i-1,j);
writeln(i,' ',j);
END;
END;
BEGIN
Assign(Input,'Robot.inp'); Reset(Input);Assign(Output,'Robot.out'); Rewrite(Output);
Enter;
Optimize;
Trace(m,n);
close(Input);
-
8/10/2019 [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
4/5
close(Output);
END.
Ci t bng ngn ng C++
#include
#include
using namespace std;
int F[31][31],A[31][31],m,n;
ofstream fo("robot.out");
ifstream fi("robot.inp");
void Enter()
{
fi>>m>>n;
fi.ignore();
int i,j;
for (i=1; iA[i][j];
fi.ignore();}
for (i=0; i
-
8/10/2019 [123doc.vn] Bai Toan Duong Di Cua Robot Tao Thanh So Nhi Phan Lon Nhat Pptx
5/5
F[1][0]=0;
for (i=1; i