Você recebe uma matriz binária de tamanho .
Quero mostrar que nenhum algoritmo pode fazer o seguinte (ou surpreender-se e descobrir que esses algoritmos existem afinal):
1) Pré-processe a matriz de entrada usando tempo ilimitado, mas apenas usando bits .
2) Responda às consultas em tempo constante, em que a consulta solicita o número de bits definidos entre o índice xe o índice y na matriz.
Parece que o tempo constante por consulta não deve permitir que o algoritmo leia informações suficientes para calcular o número de bits definidos.
Como podemos provar que esse algoritmo não existe?
Uma pergunta mais geral seria,
dado que o algoritmo pode usar o espaço , qual limite inferior no tempo de consulta podemos derivar?
Obviamente, se tivermos espaço , podemos armazenar todas as somas parciais e responder a consultas em O ( 1 ) , mas e se f for menor?
Você pode assumir que o tamanho de uma palavra na memória é e podemos ler os índices x , y em tempo constante.