题目:BZOJ1088
这道题其实是递推,确定了上一个格子是否有雷,即可确定当前第i个各自是否有雷。
所以一开始就判断第一个格子是否有雷。
附代码:
#include<cstdio>
#include<cstring>
using namespace std;
int a[11000],f[11000];
int n,ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
memset(f,0,sizeof(f));
ans=0;
for(int i=0;i<=a[1];i++)
{
memset(f,0,sizeof(f));
f[1]=i;
f[2]=a[1]-i;
for(int j=2;j<=n;j++)f[j+1]=a[j]-f[j]-f[j-1];
if(f[n+1]==0)ans++;
}
printf("%d\n",ans);
return 0;
}