P2327 [SCOI2005]扫雷

来源:互联网 发布:手机 dns劫持 数据网络 编辑:程序博客网 时间:2024/06/02 18:27

https://www.luogu.org/problem/show?pid=2327
这里写图片描述

对于这道题,我们如果知道了第一个位置有没有雷,就可以根据这个信息来判断下面位置有没有雷。
所以答案只有三种:0 , 1 , 2
根据第i个位置和第i-1位置有没有雷,就可以推出第i+1位置的雷的个数,如果雷的个数不是0或1,
那么这种情况就不符合。

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<vector>#include<queue>using namespace std;int n,a[10009];int ans,b[10009];int check(){    b[0]=0;    for(int i=1;i<=n;i++)    {        b[i+1]=a[i]-b[i-1]-b[i];        if(b[i]>1||b[i]<0) return 0;    }    return b[n+1]==0; }int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++) scanf("%d",&a[i]);    b[1]=1;ans+=check();    b[1]=0;ans+=check();    printf("%d",ans);}