[SCOI2005]掃雷

題目描述

輸入輸出格式

輸入格式:

第一行爲N,第二行有N個數,依次爲第二列的格子中的數。(1<= N <= 10000)spa

輸出格式:

一個數,即第一列中雷的擺放方案數。code

輸入輸出樣例

輸入樣例#1: 複製
2
1  1
輸出樣例#1: 複製
2

思路

顯然枚舉第一個位置是否存在地雷,其餘的均可以依次導出,或者出現矛盾;blog

代碼

 1 #include<cstdio>
 2 const int maxn=1e4+10;
 3 int n,ans;
 4 int s[maxn],f[maxn];
 5 void dfs(int k,int v){
 6     f[k]=v;
 7     if(k==n){
 8         if(f[k-1]+f[k]==s[k]) ans++;
 9         return;
10     }
11     if(f[k-1]+f[k]==s[k]) dfs(k+1,0);
12     if(f[k-1]+f[k]==s[k]-1) dfs(k+1,1); 
13 }
14 int main(){
15     scanf("%d",&n);
16     for(int i=1;i<=n;i++) scanf("%d",&s[i]);
17     dfs(1,1);
18     dfs(1,0);
19     printf("%d",ans);
20     return 0;
21 }
相關文章
相關標籤/搜索