[SCOI2005] Mine
BZOJ 1088: 相信大家都玩过扫雷的游戏。那是在一个 n×m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了
,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字
表示和它连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图:
由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放
方案。
乱搞!
#include <cstdio>
#include <cstring>
int n, d[10005], p[10005], ans;
inline bool chk() {
for (int i=2; i<=n; ++i) p[i+1]=d[i]-p[i-1]-p[i];
return !p[n+1];
}
int main() {
scanf("%d", &n);
memset(p, -1, sizeof p);
for (int i=1; i<=n; ++i) scanf("%d", &d[i]);
for (int i=0; i<=d[1]; ++i) {
memset(p, 0, sizeof p);
p[1]=i, p[2]=d[1]-i;
if (chk()) ++ans;
}
printf("%d
", ans);
return 0;
}