Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Última revisión Ambos lados, revisión siguiente | ||
algoritmos-oia:problemas-generales:planificar-tareas-optimamente [2018/01/03 02:01] sebach |
algoritmos-oia:problemas-generales:planificar-tareas-optimamente [2018/01/03 02:04] sebach [Código] |
||
---|---|---|---|
Línea 53: | Línea 53: | ||
Nota: Al final de la explicación, cuando hablamos de los estados de la dinámica, mencionábamos al ítem $i+1$, que en el código se obtiene como $items[i]$ ya que al estado de $i=0$ lo dejamos como "vacío" para poder tomar máximo siempre con el estado anterior y no andar haciendo "if(i>0)mejorValor[i-1]..." y meter ifs en el medio. | Nota: Al final de la explicación, cuando hablamos de los estados de la dinámica, mencionábamos al ítem $i+1$, que en el código se obtiene como $items[i]$ ya que al estado de $i=0$ lo dejamos como "vacío" para poder tomar máximo siempre con el estado anterior y no andar haciendo "if(i>0)mejorValor[i-1]..." y meter ifs en el medio. | ||
+ | |||
+ | El código usa struct, de lo que pueden leer [[curso-cpp/struct|acá]]. | ||
Línea 88: | Línea 90: | ||
forn(j, termino+2){ | forn(j, termino+2){ | ||
if(j-items[i].t>=0 && j<items[i].d){ | if(j-items[i].t>=0 && j<items[i].d){ | ||
- | mejorValor[i+1][j]=max(mejorValor[i+1][j], mejorValor[i][j-items[i].t]+items[i].v); | + | mejorValor[i+1][j]=mejorValor[i][j-items[i].t]+items[i].v; |
} | } | ||
mejorValor[i+1][j]=max(mejorValor[i][j], mejorValor[i+1][j]); | mejorValor[i+1][j]=max(mejorValor[i][j], mejorValor[i+1][j]); | ||
Línea 111: | Línea 113: | ||
forn(i, rescato.size())cout<<rescato[i]<<" "; | forn(i, rescato.size())cout<<rescato[i]<<" "; | ||
} | } | ||
- | |||
</code> | </code> |