题目描述
输入输出格式
输入格式:
第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)
输出格式:
一个数,即第一列中雷的摆放方案数。
输入输出样例
输入样例#1:
2 1 1
输出样例#1:
2
分析:只有两种情况,第一个是雷,或者第二个是雷,试一下他们对不对即可
1 #include<cstdio> 2 #define MAXN 10100 3 4 int f[MAXN],a[MAXN]; 5 int n,ans = 0; 6 bool dp(int x) 7 { 8 f[1] = x; 9 for (int i=2; i<=n; ++i) 10 { 11 f[i] = a[i-1]-f[i-1]-f[i-2]; 12 if (f[i]<0||f[i]>1) return false; 13 } 14 if (f[n]+f[n-1]!=a[n]) return false ; 15 return true ; 16 } 17 int main() 18 { 19 scanf("%d",&n); 20 for (int i=1; i<=n; ++i) 21 scanf("%d",&a[i]); 22 if (dp(0)) ans++; 23 if (dp(1)) ans++; 24 printf("%d",ans); 25 return 0; 26 }