1 条题解

  • 0
    @ 2025-8-24 21:36:24

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 王珩030115
    **

    搬运于2025-08-24 21:36:24,当前版本为作者最后更新于2017-11-24 09:30:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    楼下的同志们好;努力写dp的同志们辛苦了!!

    其实只要第一个点确定了;后面全都确定;

    所以只要令b【1】=1 扫一遍;再令b【1】=0;扫一遍

    所以答案只可能是0 1 2 ;

    #include<bits/stdc++.h>
    using namespace std;
    int i,j,k,m,n,ans=2,a[10001],b[10001];
    void checkx()
    {
        for(int i=2;i<=n+1;i++)
        {
        b[i]=a[i-1]-b[i-1]-b[i-2];
        if (!(b[i]==1||b[i]==0))
              {
              ans--;
              break;
              }
              if (i==n+1&&b[i]!=0)
                    {
                     ans--;
                     break;
                 }
        }
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin>>n;
        b[0]=0;
        for (i=1;i<=n;i++)    
        cin>>a[i];
        b[1]=1;
        checkx();
        b[1]=0;
         checkx();
        cout<<ans;   
    return 0;    
    }
    
    • 1

    信息

    ID
    1329
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者