Cómo resolver el problema M_SEQ en SPOJ

Primero, algunas observaciones rápidas

  • [matemática] F (n) [/ matemática] depende de [matemática] F (n-2) [/ matemática] y [matemática] n \ leq 10 ^ 9 [/ matemática]
  • Como [math] n [/ math] es tan grande, no es útil guardar los cálculos de [math] F (n) [/ math] porque tomaría demasiado tiempo calcular recursivamente y tampoco tendríamos suficiente memoria.

Hay una relación de recurrencia, por lo que es una buena idea expandirla para verificar si hay un patrón.
[matemáticas] F (1) = 8 [/ matemáticas]
[matemáticas] F (2) = 8 [/ matemáticas]

[matemáticas] F (3) = 8 + [/ matemáticas] [matemáticas] \ frac {1 ^ 2} {3 ^ 2} [/ matemáticas] [matemáticas] F (1) = 8 + \ frac {1 ^ 2} {3 ^ 2} * 8 = 8 * (1 + \ frac {1 ^ 2} {3 ^ 2}) = 8 * \ frac {1 + 3 ^ 2} {3 ^ 2} [/ matemática]

[mates]
F (4) = 8 + [/ matemáticas] [matemáticas] \ frac {2 ^ 2} {4 ^ 2} [/ matemáticas] [matemáticas] F (2) = 8 + \ frac {2 ^ 2} {4 ^ 2} * 8 = 8 * (1 + \ frac {2 ^ 2} {4 ^ 2}) = 8 * \ frac {2 ^ 2 + 4 ^ 2} {4 ^ 2}
[/mates]

[matemáticas] F (5) = 8 + \ frac {3 ^ 2} {5 ^ 2} F (3) = [/ matemáticas] [matemáticas] 8 + \ frac {3 ^ 2} {5 ^ 2} * 8 \ frac {1 + 3 ^ 2} {3 ^ 2} = [/ matemáticas] [matemáticas] 8 * \ frac {1 + 3 ^ 2 + 5 ^ 2} {5 ^ 2} [/ matemáticas]

[matemáticas] F (6) = 8 + \ frac {4 ^ 2} {6 ^ 2} F (4) = [/ matemáticas] [matemáticas] 8 + \ frac {4 ^ 2} {6 ^ 2} * 8 \ frac {2 ^ 2 + 4 ^ 2} {4 ^ 2} = [/ matemáticas] [matemáticas] 8 * \ frac {2 ^ 2 + 4 ^ 2 + 6 ^ 2} {6 ^ 2} [/ matemáticas]

Como puede ver, hay 2 patrones: uno para impares y otro para pares [matemáticas] n [/ matemáticas].