1088: [SCOI2005]扫雷Mine

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 3791  Solved: 2234
[Submit][Status][Discuss]

Description

  相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了
,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字
表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图:
由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放
方案。

Input

  第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)

Output

  一个数,即第一列中雷的摆放方案数。

Sample Input

2
1 1

Sample Output

2

HINT

Source

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1088

分析:要求方案数,很容易想到dp,但是发现只有两列,如果知道第一列的第一行有没有地雷,那么其它的位置就出来了,所以方案数仅仅只有1或2!那么我们枚举第一行的数,通过计算验证是否合理即可.只要知道第一个格子有无雷,根据a[1],可得到第二个格子有无雷,根据a[3],知道第三个格子有无雷。。。。依次类推,看是否有矛盾!

我们利用递推公式a[i]=b[i-1]-a[i-1]-a[i-2]去特判a[i]的值的大小,有雷等于1,无雷等于0,其它情况不存在,

再特判一个条件a[n]==b[n-1]-a[n-1]?true:false;即可得出答案

下面给出AC代码:

 #include <bits/stdc++.h>
using namespace std;
const int N=;
typedef long long ll;
int a[N],b[N],cnt,n;
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=;i<=n;i++)
scanf("%d",&b[i]);
for(a[]=;a[]<=;a[]++)
{
bool flag=true;
for(int i=;i<=n;i++)
{
a[i]=b[i-]-a[i-]-a[i-];
if(a[i]!=&&a[i]!=)
{
flag=false;
break;
}
if(i==n&&b[i]!=a[i]+a[i-])
{
flag=false;
}
}
if(flag)
cnt++;
}
printf("%d\n",cnt);
}
return ;
}

BZOJ 1088: [SCOI2005]扫雷Mine【思维题,神奇的模拟+枚举】的更多相关文章

  1. Bzoj 1088: [SCOI2005]扫雷Mine (DP)

    Bzoj 1088: [SCOI2005]扫雷Mine 怒写一发,算不上DP的游戏题 知道了前\(i-1\)项,第\(i\)项会被第二列的第\(i-1\)得知 设\(f[i]\)为第一列的第\(i\) ...

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

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

  3. bzoj 1088: [SCOI2005]扫雷Mine

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

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

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

  5. 1088: [SCOI2005]扫雷Mine

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

  6. bzoj 1088 [SCOI2005] 扫雷

    SCOI2005 扫雷 一道很有趣的(水)题 “这道题有四种解法,你知道么” 给你矩阵的第二列的数字,求出第一列雷有多少种可能的摆法. 不懂扫雷规则的自行按win+R然后输入winmine 思考过后我 ...

  7. 【BZOJ】1088: [SCOI2005]扫雷Mine(递推)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1088 脑残去想递推去了... 对于每一个第二列的格子,考虑多种情况,然后转移.....QAQ 空间可 ...

  8. 1088. [SCOI2005]扫雷Mine【网格DP】

    Description 相信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子 ...

  9. [SCOI2005]扫雷Mine

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

随机推荐

  1. Jstree 使用CheckBox插件 选中父节点时被禁用的子节点也会选中问题

    问题描述: 最近用jstree遇到一个问题,使用CheckBox插件时,当父节点选中时,被禁用的子节点也会选中如下 解决方案: 1.  将jstree升级到最新的版本,v3.3.4及以上就可以 2. ...

  2. 解决author波浪线Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click

    自从把默认的头注释的author改成自己的名字以后越看越顺眼,但是发现名字下面一直有个波浪线,强迫症简直不能忍. 然后当你把鼠标放上去,再点击提示上的"more",会看到下面的提示 ...

  3. 447. Number of Boomerangs

    Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...

  4. Webpack 2 视频教程 017 - Webpack 2 中分离打包项目代码与组件代码

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  5. C# 真正能发邮件的源码

    在网上找了很多例子都试邮件发送都失败,今天无意有试了一下居然行了 public static void ErrorMessageMail(string _subject, string _body)  ...

  6. KVO键值观察的具体实现

    1.KVO简介 KVO是Objective-C对观察者设计模式的一种实现,它提供一种机制,指定一个被观察对象(如A类),当对象中的某个属性发生变化的时候,对象就会接收到通知,并作出相应的处理.在MVC ...

  7. Vuex- Action的 { commit }

    Vuex 中 使用 Action 处理异步请求时,常规写法如下: getMenuAction:(context) =>{ context.commit('SET_MENU_LIST',['承保2 ...

  8. Linux下Tomcat重新启动,及kill命令的使用

    Linux下Tomcat重新启动,及kill命令的使用 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查 ...

  9. 房上的猫:while循环与do-while循环,debug的调试运用

    一.循环结构 1.循环不是无休止进行的,满足一定条件的时候循环才会继续,称为"循环条件",循环条件不满足的时候,循环退出 2.循环结构是反复进行相同的或类似的一系列操作,称为&qu ...

  10. 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数

    问题描述: 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数. 算法一: 对数组a[n]进行冒泡排序,如果冒泡所得的最值和前一个最值相等,则该最值为重复的数. 分析: 该算法时间复杂 ...