题目大意:
给你一个
2∗N
的扫雷棋盘,我们假设是
2
列
解题思路:
首先你得会玩扫雷。。(不会的出门左转阳台不送)
然后我们观察可以发现,如果我们确定了第
AC代码:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
int a[1010]={0};
int N;
bool g[1010]={0};
int ans=0;
bool check()
{
for(int i=1;i<N;i++)
{
int gg=g[i-1]+g[i];
if(gg==a[i]-1) g[i+1]=1;
else if(gg>a[i] || gg+1<a[i]) return false;
}
if(g[N-1]+g[N]!=a[N]) return false;
return true;
}
int main()
{
scanf("%d",&N);
for(int i=1;i<=N;i++)
scanf("%d",&a[i]);
ans+=check();
if(a[1]>0)
{
memset(g,0,sizeof(g));
g[1]=1;
ans+=check();
}
cout<<ans<<endl;
return 0;
}