2 条题解

  • 0
    @ 2023-12-29 20:22:41
    #include<iostream>
    using namespace std;
    int main()
    {
    int n,w[1001],r[1001],b[1001],s[1001];
    cin>>n;
    s[1]=2;
    s[2]=2;
    s[3]=4; w[3]=2; r[3]=2; b[3]=2;
    for(int i=4;i<=n;i++)
    {
    w[i]=r[i-1]+b[i-1]/2;
    r[i]=w[i-1]+b[i-1]/2;
    b[i]=r[i-1]+w[i-1];
    s[i]=w[i]+r[i];
    }
    cout<<s[n];
    return 0;
    }
    

    没有运用斐波那契数列 分别算出红白蓝开头的方案个数 w[i]=r[i-1]+b[i-1]/2; r[i]=w[i-1]+b[i-1]/2; b[i]=r[i-1]+w[i-1]; 因为条件2,所以b[i-1]/2 总个数w+r 举例n=4 b-1 w-2 r-3 b 1213 1232(开头为2时不成立) 1323 1312(开头为3时不成立)(故需除以2) w 2132 2312 2121 r 3123 3213 3131

    信息

    ID
    407
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    79
    已通过
    38
    上传者