¿Cómo resolver la pregunta 1 de ZIO2015? ¿Es un enfoque de programación dinámica?

No es DP, eso podría volverse bastante tedioso. La idea básica es calcular primero el número máximo de dígitos que puede comprar (dado que al menos un dígito debe ser distinto de cero) y luego proceder con avidez: a partir de la izquierda, elija siempre el dígito más grande que pueda para que le queden suficientes rupias. para los dígitos restantes.

Para (a), el número máximo de dígitos que puede comprar es 10 (tomando uno, tres y nueve ceros). El primer dígito debe ser 3 o 7, de lo contrario es demasiado costoso. Entonces tomamos 7 como primer dígito. Tenemos Rs 28 restantes, por lo que el siguiente dígito debe ser 0 o 3, por lo que lo hacemos 3. Después de eso, el resto debe ser 0, por lo que la respuesta es 7300000000.

Para (b), el dígito más barato es 2, con un costo de 8, por lo que podemos comprar en la mayoría del piso (62/8) = 7 dígitos. Si los últimos 6 dígitos son todos 2, el costo es 48, por lo que el primer dígito puede costar hasta 14, por lo que elegimos 5 para el primer dígito, que deja 49. Ahora solo tenemos una “holgura” de 1, por lo que puede gastar hasta 9 en el segundo dígito, por lo que elegimos 3. Después de eso, el resto debe ser 2, por lo que la respuesta es 5322222.

Para (c), se pueden usar hasta 10 dígitos; 72 – 9 * 7 = 9; entonces elegimos 9 para el primer dígito y 6 para todos los dígitos restantes; 9666666666.

More Interesting

¿Cuáles son todos los diferentes tipos de recursividad en la programación?

¿Cuál es el mejor algoritmo para encontrar números primos? ¿Cuál es su sintaxis?

Cómo resolver esta recurrencia T (n) = T (sqrt (n)) + log_2 n

Cuando un algoritmo de árbol de decisión se enfrenta a dos atributos que producen divisiones igualmente buenas en un árbol, ¿cómo eligen uno sobre otro?

¿Qué es más rápido, encontrar un elemento en una tabla hash o en una lista ordenada? ¿Suena fácil? Pensar, repensar y comentar.

¿Cómo se puede probar que la ruta única a través de un árbol de expansión mínima entre dos nodos es una ruta más corta de "cuello de botella"?

¿Cuáles son las aplicaciones prácticas / de la vida real / industriales de Dijkstra, Kruskal y Algortithm de Prim?

¿Cómo puedo usar el algoritmo de Baum-Welch para agregar observaciones perdidas?

¿Cuál es una manera de ordenar una matriz en C por una entrada simple?

¿Cómo encuentra un ciclo en una lista "simple" usando solo dos punteros?

¿Existe un algoritmo de clasificación que pueda ordenar los n números dados en O (1) donde n> 2?

¿Qué temas matemáticos necesito aprender antes de comenzar a aprender inducción, recursión y programación dinámica?

¿Cómo funciona un algoritmo de bogosort cuántico?

Si uno es un desarrollador JS (comprende algoritmos, estructuras de datos, patrones), ¿qué tan difícil sería cambiar al desarrollo Java o C ++?

¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?