目录
显示
题目链接
https://www.luogu.org/problem/P2327
题解
一道很不错的思维题。
事实上,确定了第一个格子的状态,就可以推出其他格子的状态。
所以枚举第一个格子是否有雷即可。(答案也只有三种情况:0,1,2)
#include <stdio.h>
#include <string.h>
int a[10005],b[10005];
int main()
{
int n,ans=2;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
b[1]=1;
for(int i=2;i<=n+1;i++)
{
b[i]=a[i-1]-b[i-1]-b[i-2];
if(b[i]!=0&&b[i]!=1)
{
ans--;
break;
}
if(b[n+1]!=0)ans--;
}
memset(b,0,sizeof(b));
for(int i=2;i<=n+1;i++)
{
b[i]=a[i-1]-b[i-1]-b[i-2];
if(b[i]!=0&&b[i]!=1)
{
ans--;
break;
}
if(b[n+1]!=0)ans--;
}
printf("%d\n",ans);
return 0;
}