#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n];
    a[1]=0;a[2]=1;a[3]=1;
    for(int i=4;i<=n;i++)
        a[i]=a[i-3]+2*a[i-2]+a[i-1];
    cout<<a[n];
    return 0;
}

...怀疑以前的自己是不是有什么问题
数组居然不加范围


#include<iostream>
using namespace std;
int main()
{
    int a[]={0,1,1}, n, b=4;
    cin>>n;
    while(b<=n)
    {
        a[b-1]=a[b-4]+2*a[b-3]+a[b-2];
        b++;
    }
    cout<<a[n-1]<<endl;
}

不通过
您的代码已保存
段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
case通过率为40.00%

?

(其他人都用的递归
确实这样时间不变还能节约空间
只不过我完全没有想到
大约我的科技树漏了很多东西)