P2327 [SCOI2005]扫雷

题目描述

输入输出格式

输入格式:

第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)

输出格式:

一个数,即第一列中雷的摆放方案数。

输入输出样例

输入样例#1:
2
1  1
输出样例#1:
2

首先答案在【0,2】区间内(很明显嘛,要是可能性很多,谁还扫雷啊)。
然后我就判断第一个点有雷和没雷两种情况,若成立结果加 1.
#include<iostream>
#include<queue>
#include<cstdio>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
int n,a[10009];
int b[10009];
bool work()
{
    b[0]=0;
    for(int i=1;i<=n;i++)
    {
        b[i+1]=a[i]-b[i-1]-b[i];
        if(b[i+1]>1||b[i]<0)    return 0;
    }
    if(b[n+1]==0)    return 1;
    return 0;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)    scanf("%d",&a[i]);
    int ans=0;
    for(b[1]=0;b[1]<2;++b[1])
        ans+=work();
    cout<<ans;
    return 0;
} 
 
原文地址:https://www.cnblogs.com/CLGYPYJ/p/7306919.html