Algoritmo de entrenamiento_1049 (Luogu)

 

 Código completo:

#include <iostream>
#include <cstdio>
usando el espacio de nombres std;
int m, n; // Escala de datos
int f [20010]; // Este es el estado (relacionado con el valor residual), que indica que el volumen es f [j] El valor mínimo restante
int w [40]; // El volumen utilizado para contener cada mochila
int main () {
int i, j; // El problema de la mochila es generalmente que el volumen de los primeros elementos i está limitado por j La mejor
cin >> m >> n; // Escala de datos
para (i = 1; i <= n; i ++) {
cin >> w [i];
}
para (i = 1; i <= n; i ++) {
for (j = m; j> = w [i]; j--) {
// Nota: aquí debe ser de m a w [i], de lo contrario, un objeto se cargará en la caja varias veces, ver ejemplo 1
if (f [j] <f [j-w [i]] + w [i]) {
f [j] = f [j-w [i]] + w [i];
}
}
}
cout << m-f [m];
}

Supongo que te gusta

Origin www.cnblogs.com/WAsbry/p/12683624.html
Recomendado
Clasificación