[SCOI2005]扫雷

我们可以发现。。。最开始的两个。。。只有两种情况。。。直接枚举一下。。。递推出结果好了。。。

呆码:

#include<iostream>
#include<cstring>
using namespace std;
int n,a[100001],b[100001],ans;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=0;i<=a[1];i++)
    {
        memset(b,0,sizeof(b));
        b[1]=i;b[2]=a[1]-i;
        for(int j=3;j<=n+1;j++)
            b[j]=a[j-1]-b[j-1]-b[j-2];
        if(!b[n+1]) ans++;
    }
    cout<<ans;
}
//        b[i-2]+b[i-1]+b[i]=a[i-1]
//        b[i-1]+b[i]+b[i+1]=a[i]
//        b[i]+b[i+1]+b[i+2]=a[i+1]
代码
原文地址:https://www.cnblogs.com/zzzyc/p/9304895.html