Bzoj 1088: [SCOI2005]扫雷Mine

怒写一发,算不上DP的游戏题

知道了前\(i-1\)项,第\(i\)项会被第二列的第\(i-1\)得知

设\(f[i]\)为第一列的第\(i\)行位置是否有雷,有雷的话,\(f[i] = 1\),无雷\(f[i] = 0\)

\(a[i]\)就是题目读入的东西.

那么转移方程就是\(f[i] = a[i - 1] - f[i - 1] - f[i - 2]\)

不满足限制的时候就是\(f[i] < 0\) 或者$ f[i] > 1$

第一个位置讨论一下即可.进行上面的递推.

#include <iostream>
#include <cstdio>
const int maxN = 10000 + 7; int f[maxN],ans,a[maxN]; inline int read() {
int x = 0,f = 1;char c = getchar();
while(c < '0' || c > '9') {if(c == '-')f = -1;c = getchar();}
while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = getchar();}
return x * f;
} int n;
void work() {
for(int i = 2;i <= n;++ i) {
f[i] = a[i - 1] - f[i - 1] - f[i - 2];
if(f[i] < 0 || f[i] > 1) return ;
}
if(a[n] != f[n] + f[n - 1])return ;
ans ++;
return ;
} int main() {
n = read();
for(int i = 1;i <= n;++ i)
a[i] = read();
for(int i = 0;i < 2;++ i)
f[1] = i,work();
printf("%d\n", ans);
return 0;
}

最新文章

  1. c#委托----我的一点笔记
  2. iOS之新浪微博的OAuth授权
  3. JAVA $ JSP
  4. 9款超酷的jQuery/CSS3插件
  5. 简单的webservice
  6. 团队作业8——第二次项目冲刺(Beta阶段)5.25
  7. Spring Framework 的 Assert断言
  8. Web API学习笔记(Python实现)
  9. linux下有名管道进程通信
  10. Lock 从来就没有成功过
  11. 使用FluentMigrator进行数据库迁移
  12. 12.24daily_scrum
  13. 百练6255-单词反转-2016正式B题
  14. BZOJ.4571.[SCOI2016]美味(主席树 贪心)
  15. 基于JS的文本验证
  16. Vmware 下安装linux虚拟机
  17. 深度解析pos机,养卡人必看!
  18. FTP文件上传以及获取ftp配置帮助类
  19. 线段树(压位)luogu P1558色板游戏
  20. (18)python 打包发布

热门文章

  1. js 判断当前操作系统 ios, android, 电脑端
  2. Android近场通信---NFC基础(一)(转)
  3. Qt 进程和线程之三:线程同步、可重入与线程安全
  4. Django 使用Paginator分页
  5. Mysql5.7安装错误处理与主从同步及!
  6. slf4j介绍以及与Log4j、Log4j2、LogBack整合方法
  7. 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------&gt;剑指offer系列
  8. map中使用await 异步函数
  9. Genymotion的安装与设置
  10. 重置Cacti密码