BZOJ 1088 [SCOI 2005] 扫雷Mine 题解&代码

来源:互联网 发布:网络剧 有毒 第一季 编辑:程序博客网 时间:2024/05/16 01:32

我推了好久的dp啊= =一口老血喷出来
这个智商怎么救= =快告诉我怎么救

#include<iostream>#include<stdio.h>using namespace std;const int maxn=10005;int n,ans,a[maxn],s[maxn];int cal(void){    for(int i=2;i<=n;i++)    {        s[i]=a[i-1]-s[i-1]-s[i-2];        if(s[i]<0 || s[i]>1)return 0;    }    if(a[n]-s[n-1]-s[n])return 0;    return 1;}int main(void){    scanf("%d",&n);    for(int i=1;i<=n;i++)        scanf("%d",&a[i]);    if(a[1]==0)ans=cal();    else    {        s[1]=1;        ans+=cal();        s[1]=0;        ans+=cal();    }    printf("%d\n",ans);    return 0;}
0 0