BZOJ 1088 扫雷Mine
今天做了几道BZOJ的题,发现统观题目时还是很多很多都不会的,不过还是有几道时可以作的,以后要慢慢加强,争取多做题
BZOJ 1088 扫雷
其实本人平常不大玩扫雷的,就算玩也不是很好,不过看n*2的扫雷,也是微醺啊QAQ
1088: [SCOI2005]扫雷Mine
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2299 Solved: 1345
[Submit][Status][Discuss]
Description
相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。
Input
第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)
Output
一个数,即第一列中雷的摆放方案数。
Sample Input
2
1 1
Sample Output
2
这道题可以看出,因为知道第二列每个点附近有几个雷,有知道附近指的是八联通,又因为是n*2的雷区。。所以不难想到,每个第二列的点,炸弹数分布在三个格中(收尾除外,为两个),所以由第二列第一个点附近的雷数,可以得到第一列第一二格是否有雷,所以往下找就能找到,最后只需要判断是否合法就好
其转移可表示为
boom[i]=num[i-1]-(boom[i-1]+boom[i-2]);
(num为第二列的点的值,boom是第一列是否有雷0无雷1有雷)
下面是代码(写到一半发现其实写个过程就简短多了,然而。。。)/(ㄒoㄒ)/~~
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int num[10010]={0};//存储第二列的每个格里的数,及附近炸弹数
int boom[10010]={0};//第一列是否有炸弹(0为无炸弹,1为炸弹)
int ans=1;
int main()
{
scanf("%d",&n);
memset(boom,0,sizeof(boom));
for (int i=1; i<=n; i++)
scanf("%d",&num[i]);
if (num[1]!=1)//因为第一个点可以控制两个点的炸弹数,如果的得知第一个点周围没炸弹或有两个炸弹,那么前两个点都有炸弹或都没有炸弹
{
ans=1;
if (num[1]==0)
boom[1]=boom[2]=0;
if (num[1]==2)
boom[1]=boom[2]=1;
for (int i=3; i<=n+1; i++)
boom[i]=num[i-1]-(boom[i-1]+boom[i-2]);
if (boom[n+1]!=0)//判断是否可行
ans--;//因为ans初值为1,所以如果不可行减1即可
}
if (num[1]==1)//如果第一个点附近有一个炸弹,则有两种情况(1) 第一个点有炸弹,第二个点没有 (2)第一个点没有,第二个点有
{
ans=2;
boom[1]=1;
boom[2]=0;
for (int i=3; i<=n+1; i++)
boom[i]=num[i-1]-(boom[i-1]+boom[i-2]);
if (boom[n+1]!=0)
ans--;//第一种情况
boom[1]=0;
boom[2]=1;
for (int i=3; i<=n+1; i++)
boom[i]=num[i-1]-(boom[i-1]+boom[i-2]);
if (boom[n+1]!=0)
ans--;//第二种情况
}
printf("%d",ans);
}
BZOJ 1088 扫雷Mine的更多相关文章
- 【BZOJ 1088 扫雷Mine】模拟
http://www.lydsy.com/JudgeOnline/problem.php?id=1088 2*N的扫雷棋盘,第二列的值a[i]记录第 i 个格子和它8连通的格子里面雷的数目. 第一列的 ...
- BZOJ 1088 扫雷Mine 枚举初始状态
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1088 题目大意: 现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: ...
- BZOJ 1088 扫雷Mine (递推)
题解:如果确定了第一排前两个数,那么剩下的数是唯一确定的,所以只要分情况讨论即可. #include <cstdio> #include <cstring> int n,a[1 ...
- Bzoj 1088: [SCOI2005]扫雷Mine (DP)
Bzoj 1088: [SCOI2005]扫雷Mine 怒写一发,算不上DP的游戏题 知道了前\(i-1\)项,第\(i\)项会被第二列的第\(i-1\)得知 设\(f[i]\)为第一列的第\(i\) ...
- 【递推】BZOJ 1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2275 Solved: 1328[Submit][St ...
- 【BZOJ】1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Description 相 信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的 ...
- bzoj 1088: [SCOI2005]扫雷Mine
题目链接 1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2525 Solved: 1495[Submi ...
- BZOJ 1088: [SCOI2005]扫雷Mine【思维题,神奇的模拟+枚举】
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3791 Solved: 2234[Submit][St ...
- 1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 979[Submit][Sta ...
随机推荐
- swift三方库
链接: Swift 有哪些优秀的第三方库? Swift 中AFNetworking 的替代方案 Alamofire Swift2.0后Alamofire的使用方法 [快速学会Swift第三方库] Al ...
- Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别
通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...
- CentOS RHEL 安装 Tomcat 7
http://www.davidghedini.com/pg/entry/install_tomcat_7_on_centos This post will cover installing and ...
- Types of intraclass correlation coefficience (ICC)
Reference: Andellini M, Cannatà V, Gazzellini S, et al. Test-retest reliability of graph metrics of ...
- webapp:移动端高清、多屏适配方案(zz)
来源: http://sentsin.com/web/1212.html 移动端高清.多屏适配方案 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉 ...
- 关于用mybatis调用存储过程时的入参和出参的传递方法
一.问题描述 a) 目前调用读的存储过程的接口定义一般是:void ReadDatalogs(Map<String,Object> map);,入参和出参都在这个map里 ...
- MvvmLight ToolKit .Net4.5版本 CanExecute不能刷新界面bug
一 问题重现 1.在使用最新版本v5.1的MvvmLight中(其实这个问题很早就有了),发现CanExecute不能很好地工作了.一个简单的工程,只有MainWindow和MainWindow ...
- Java:泛型
一.序言 变化一: 在引入范型之前,Java中的类型分为原始类型.复杂类型,其中复杂类型分为数组和类:引入范型后,一个复杂类型可以细分成更多的类型. 例如,原先的List类型,现在细分成List< ...
- gravity、layout_gravity及orientation
gravity.layout_gravity及orientation 最近在弄一个简单的界面:横向,添加一张准备好的背景图,在界面右边居中放置一个按钮.实现过程中发现对布局的主要属性没有想象中地那么熟 ...
- directly receive json data from javascript in mvc
if you send json data to mvc,how can you receive them and parse them more simply? you can do it like ...