考虑右侧的一个格子是否放雷,只可能对其左侧的三个格子造成影响。

也就是说,若左侧一个格子旁的两个格子已经放了雷,对第三个格子也就唯一确定了。

因此只枚举前两个格子是否放雷,剩下的暴力判断是否合法即可。

但是再想想,左侧第一个格子只受右侧前两个格子的影响。所以只枚举右侧第一个格子是否放雷,剩下的判断是否合法即可。

 #include<cstdio>
#include<cstring>
using namespace std;
int n,a[],t[],ans;
bool b[];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
memcpy(t,a,sizeof(a));
b[]=; a[]--; a[]--;
for(int i=;i<=n;i++)
if(a[i-])
{
b[i]=; a[i-]--; a[i]--; a[i+]--;
if(a[i-]!=) goto FAIL;
}
if(a[n]!=||a[n-]!=) goto FAIL;
ans++;
FAIL: memset(b,,sizeof(b));
memcpy(a,t,sizeof(a));
for(int i=;i<=n;i++)
if(a[i-])
{
b[i]=; a[i-]--; a[i]--; a[i+]--;
if(a[i-]!=) goto FAIL2;
}
if(a[n]!=||a[n-]!=) goto FAIL2;
ans++;
FAIL2: printf("%d\n",ans);
return ;
}

【暴力】【推导】bzoj1088 [SCOI2005]扫雷Mine的更多相关文章

  1. BZOJ1088 [SCOI2005]扫雷Mine 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1088 题意概括 扫雷.只有2行.第2行没有雷,第一行有雷.告诉你第二行显示的数组,问有几种摆放方式 ...

  2. 【题解】 bzoj1088: [SCOI2005]扫雷Mine (神奇的做法)

    bzoj1088,懒得复制,戳我戳我 Solution: 其实这个有个结论,答案只会有\(0\),\(1\),\(2\)三种(我真的是个弱鸡,这个都想不到) 然后我们假设第一个就可以推出所有的状态(显 ...

  3. BZOJ1088: [SCOI2005]扫雷Mine

    这道题A的好莫名其妙啊2333 传送门 状压DP,枚举上一个雷的分布情况(1<<3)-1,然后和当前的分布相结合,推出下一状态. //BZOJ 1088 //by Cydiater //2 ...

  4. [BZOJ1088][SCOI2005]扫雷Mine DP

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1088 记录下每一个格子对应左边格子放的雷的情况,然后dp转移就好了. #include&l ...

  5. 【递推】BZOJ 1088: [SCOI2005]扫雷Mine

    1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2275  Solved: 1328[Submit][St ...

  6. 【BZOJ】1088: [SCOI2005]扫雷Mine

    1088: [SCOI2005]扫雷Mine Description 相 信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的 ...

  7. bzoj 1088: [SCOI2005]扫雷Mine

    题目链接 1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2525  Solved: 1495[Submi ...

  8. 1088: [SCOI2005]扫雷Mine

    1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1635  Solved: 979[Submit][Sta ...

  9. BZOJ 1088: [SCOI2005]扫雷Mine【思维题,神奇的模拟+枚举】

    1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3791  Solved: 2234[Submit][St ...

随机推荐

  1. HDU 4417 划分树写法

    Problem Description Mario is world-famous plumber. His “burly” figure and amazing jumping ability re ...

  2. codeforces 110E Lucky Tree

    传送门:https://codeforces.com/contest/110/problem/E 题意:给你一颗树,节点与节点之间的边有一个边权,定义只由4和7组成的数字是幸运数字,现在要你求一共有多 ...

  3. 【Foreign】染色 [LCT][线段树]

    染色 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output Sample Input 13 0 1 0 2 1 11 1 ...

  4. 【Mysql优化】索引碎片与维护

    在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致) 解决办法: (1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表. 比如: 表的引擎 ...

  5. Linux 添加PPA源

    我们在使用Ubuntu安装程序时经常会遇到添加软件源的操作,最常见的是ppa软件源. 例如:sudo add-apt-repository ppa:rvm/smplayer 这就是添加smplayer ...

  6. 一致性hash算法小结

    把服务器的IP或者主机名作为key对2^32求余,余数一定是2^32-1,然后放到(平行映射)0~2^32次方首尾相连的环上.   理想状态下服务器会均匀分布在这个环上,当数据存储时,依然把key对2 ...

  7. Selenium tutorial/overview

    copy from: http://www.jroller.com/selenium/ Selenium tutorial/overview 1. Selenium Introduction 2. S ...

  8. POJ2680(动态规划,大数)

    Computer Transformation Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4548   Accepted ...

  9. git应用基础配置

    1.注册github账号.注册的时候会要求输入用户名和email这是配置git必须的要素 2.在使用git的时候首先需要把注册时候配合的用户名和密码填在git仓库的配置文件里,如下 harvey@ha ...

  10. 使用pipeline管道执行redis命令

    pipeline管道可以减少后端与redis的连接次数,从而实现了优化. 原理如下: 使用方法: 未使用pipeline前: strict_redis = get_redis_connection(' ...