tenemos que encontrar el enésimo término de esta serie http://oeis.org/A028859enésimo término de la serie
n < = 1000000000
respuesta debe ser modulo 1000000007
he escrito el código, pero límite de tiempo excede cuando na es un gran número.
#include<iostream>
using namespace std
int main()
{
long long int n;
cin>>n;
long long int a,b,c;
a=1;
b=3;
int i;
for(i=3;i<=n;i++)
{
c=(2ll*(a+b))%1000000007;
a=b;
b=c;
}
cout<<c;
}
Cualquier posibilidad de que podría pegar en un ejemplo de código más limpio que éste, mediante sangrado adecuado y evitar el excesivo espacio en blanco? –
¿Qué tiene esto que ver con la programación dinámica? – Mathias
Pruebe la versión recursiva de este algoritmo y comprenderá cómo se trata de un algoritmo de programación dinámica. Básicamente, almacenamos los valores calculados de n-1 y n-2. Digamos que es una versión básica de DP. –