Red de conocimiento informático - Conocimiento de la instalación - Proporcione el código fuente PASCAL gratuito para este problema.

Proporcione el código fuente PASCAL gratuito para este problema.

Hola, este es un tema típico de programación dinámica. Usando el pensamiento de mochila, la ecuación de transferencia es: f[j]:=f[j-a[i]] b[i].

El siguiente es el código fuente:

Definir variables

m, t, I, j: longint;

f: array [0 ..1000000]

Acerca de

Deseo;

a, b: matriz [0..600]

Acerca de

Deseo;

Inicio

readln(t, m);

es

i:=1

Para

m

Hacer

readln(a[i], b[I]);

fillchar( f,sizeof(f),0);

es

i:=1

a

m

Hacer

para

j:=t

Tang Tuo

a[i]

Hacer

Si

f[j] lt;f[j-a[i]] b[i]

Entonces

f [j ]:= f[j-a[I]] b[I];

writeln(f[t]);

Fin.

Si desea utilizar el formato de archivo, es:

Definir variables

m, t, I, j: longint

<; p>f: matriz[0..1000000]

Acerca de

deseo;

a, b: matriz[0..600]

Acerca de

Desire;

Inicio

Asignar(input, 'filename.in');

Restablecer(input) ;

Asignar(out, 'filename.out');

Reescribir(out);

readln(t, m);

para

i:=1

a

m

hacer

readln(a[i ], b[I]);

fillchar(f, tamañode(f), 0

es

i:=1

;

a

m

hacer

para

j:=t

Tang Tuo p>

a[i]

Hacer

si

f[j] lt; f[j-a[i]] b[i] ]

Entonces

f[j]:= f[j-a[I]] b[I];

writeln(f[t]);

Cerrar(entrada);

Cerrar(salida);

Fin.

Gracias. Buena suerte.