题目大意:n行2列的格子,第二列没有雷,求方案数
题解:考虑到第二列每个格子的数字由第一列三个格子决定(设第一列第0行无雷),可以枚举第一行,这样就可以依次决定每一行
我的收获:部分枚举
#include <iostream>
#include <cstdio>
using namespace std;
const int M=10005;
int n,ans,v[M];
void dfs(int x,int s,int d)//当前行,上一行
{
if(d==n&&x+s==v[n]){ans++;return ;}//特判最后一行
if(v[d]-x-s==0||v[d]-x-s==1) dfs(v[d]-x-s,x,d+1);//满足才继续
}
void work()
{
for(int i=0;i<=v[1];i++)
dfs(i,0,1);
printf("%d\n",ans);
}
void init()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
}
int main()
{
init();
work();
return 0;
}