这题与上题类似,递归就别想了,直接dp吧,4s够用了
但是不能用数组存,5kw会炸
所以用三个变量迭代计算,同时记得算完%100...007
然后对n=1与n=2特判一下,n>=3开始就可以dp下去了
下面上一下代码
a = 1;
b = 1;
c = 2;
for (int i = 3; i <= n; i++)
{
temp = (a + b + c) % 100000007;
a = b;
b = c;
c = temp;
}
cout << temp << endl;