Editorial for Número de Bestias
Submitting an official solution before solving the problem yourself is a bannable offence.
Authors:
, ,El problema nos pide encontrar la cantidad de números en el intervalo que contienen exactamente n bits activos en su notación en binario. Sea la solución a nuestro problema, luego \(g(a,b,n) = f(b,n) – f(a-1,n)\) donde es la cantidad de números en el intervalo que contienen n bits activos en su notación en binario. Entonces el problema que tenemos ahora es calcular , para ello lo primero es llevar a a binario. Sea la cantidad de dígitos de (en binario), luego la cantidad de números de hasta dígitos que tienen bits activos seria que denota la combinatoria de objetos en lugares. Luego resta contar los números menores que que tienen dígitos. Para ello iteramos por los dígitos de , desde el bit más significativo al menos significativo, si el bit i esta encendido contamos la cantidad de números que son iguales a hasta el bit ( en este caso el bit es más significativo que el bit ) y que tiene el bit i apagado, que sería , donde es la cantidad de lugares que me restan por analizar y es la cantidad de bits que me faltan por colocar, es decir, – bits activos en hasta el bit . El único caso que resta es contar que el propio tenga bits activos. Complejidad: .
Comments