扫雷

来源:互联网 发布:king域名永久 编辑:程序博客网 时间:2024/06/03 14:27

某一位的状态可以由上面的和上上面的推过来
所以枚举第一位有没有雷
dp方程:
b[i]=a[i-1]-b[i-2]-b[i-1];

#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<stdlib.h>using namespace std;int n,a[19999],b[19999], ans;int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++)    scanf("%d",&a[i]);    for(int i=0;i<=1;i++)    {        b[0]=0;        b[1]=i;        for(int j=2;j<=n+1;j++)        {        b[j]=a[j-1]-b[j-2]-b[j-1];        if(b[j]>1||b[j]<0)break;        if(j==n+1&&b[n+1]==0) ans++;        }    }    printf("%d",ans);}