bzoj 1088 [SCOI2005] 扫雷
SCOI2005 扫雷
一道很有趣的(水)题
“这道题有四种解法,你知道么”
给你矩阵的第二列的数字,求出第一列雷有多少种可能的摆法。
不懂扫雷规则的自行按win+R然后输入winmine
思考过后我想到了一种拙劣的DP写法 ,
四维 F[i][][][] i代表到了第几个格子,后面三维用 0和1表示 这个格子旁边雷的情况,分别是 左上 左 左下
简单易懂(十分恶心)的代码
#include<bits/stdc++.h>
using namespace std;
int N,a[],f[][][][];
int main()
{
ios::sync_with_stdio(false);
cin>>N;
for(int i=;i<=N;i++)cin>>a[i];
if (a[]==)f[][][][]=;
else if (a[]==)f[][][][]=,f[][][][]=;
else if (a[]==)f[][][][]=;
for(int i=;i<=N-;i++)
{
if (a[i]==)
f[i][][][]=f[i-][][][]+f[i-][][][];
else if (a[i]==)
f[i][][][]=f[i-][][][]+f[i-][][][],
f[i][][][]=f[i-][][][]+f[i-][][][],
f[i][][][]=f[i-][][][]+f[i-][][][];
else if (a[i]==)
f[i][][][]=f[i-][][][]+f[i-][][][],
f[i][][][]=f[i-][][][]+f[i-][][][],
f[i][][][]=f[i-][][][]+f[i-][][][];
else if (a[i]==)
f[i][][][]=f[i-][][][]+f[i-][][][];
}
if (a[N]==) cout<<f[N-][][][]+f[N-][][][];
else if (a[N]==) cout<<f[N-][][][]+f[N-][][][]+f[N-][][][]+f[N-][][][];
else if (a[N]==) cout<<f[N-][][][]+f[N-][][][];
return ;
}
就是枚举出了所有的情况 ,暴力转移。 (手边要有个画图板 边写边画 别漏情况)
美其名曰DP
当时代码写得十分顺,一遍过编译 ,一遍AC
实际上 ,没这么复杂。
现在我们可以思考一下 , 第二列数字都已知 , 如果你知道了第一列的前两个格子是否有雷 ,那么 我们就可以把 所有的 都推出来了
b[i]=a[i-1]-b[i-1]-b[i-2] (b[i]是格子i的雷,a[i]是第二列的数字)
所以只要枚举前两个格子的雷就可以了 。
这题答案只有 0,1,2;
超短代码↓
#include<bits/stdc++.h>
using namespace std;
int N,a[],ans;
void Work(int x,int y)
{
int b[];
b[]=x,b[]=y;
for(int i=;i<=N+;i++)
b[i]=a[i-]-b[i-]-b[i-];
if(b[N+]==)ans++;
}
int main()
{
ios::sync_with_stdio(false);
cin>>N;
for(int i=;i<=N;i++)cin>>a[i];
if (a[]==)Work(,),Work(,);
else if (a[]==)Work(,);
else if (a[]==)Work(,);
cout<<ans<<endl;
return ;
}
bzoj 1088 [SCOI2005] 扫雷的更多相关文章
- 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 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 ...
- 【BZOJ】1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Description 相 信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的 ...
- 1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 979[Submit][Sta ...
- 【BZOJ】1088: [SCOI2005]扫雷Mine(递推)
http://www.lydsy.com/JudgeOnline/problem.php?id=1088 脑残去想递推去了... 对于每一个第二列的格子,考虑多种情况,然后转移.....QAQ 空间可 ...
- 1088. [SCOI2005]扫雷Mine【网格DP】
Description 相信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子 ...
- BZOJ 1088 扫雷Mine
今天做了几道BZOJ的题,发现统观题目时还是很多很多都不会的,不过还是有几道时可以作的,以后要慢慢加强,争取多做题 BZOJ 1088 扫雷 其实本人平常不大玩扫雷的,就算玩也不是很好,不过看n*2的 ...
随机推荐
- Idea配置文件的读取
开发过程中遇到配置文件读取问题,因此记录以后运用的到. 配置文件位置: 配置文件内容: default_size = 100 grid_size = 20 delayTime = 200 配置文件读取 ...
- Codeforces 667D World Tour 最短路
链接 Codeforces 667D World Tour 题意 给你一个有向稀疏图,3000个点,5000条边. 问选出4个点A,B,C,D 使得 A-B, B-C, C-D 的最短路之和最大. 思 ...
- jq弹窗(获取页面宽高,滚轮高度,始终居中)
jq写一个弹窗,效果如上图所示, 点击按钮弹窗弹出,右上角关闭. 弹窗始终显示在页面中间,无论放大缩小窗口,滚轮滚动. 代码如下: html: <br><br><br&g ...
- 洛谷P1339 [USACO09OCT]热浪Heat Wave(最短路)
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- POJ 2029 Get Many Persimmon Trees 【 二维树状数组 】
题意:给出一个h*w的矩形,再给出n个坐标,在这n个坐标种树,再给出一个s*t大小的矩形,问在这个s*t的矩形里面最多能够得到多少棵树 二维的树状数组,求最多能够得到的树的时候,因为h,w都不超过50 ...
- lua中调用C++函数
lua中调用C++函数 我们产品中提供了很多lua-C API给用户在lua中调用,之前一直没用深究其实现原理,只是根据已有的代码在编码.显然这不是一个好的习惯,没用达到知其所以然的目的. 一.基本原 ...
- c++类模板初探
#include <iostream> #include <string> using namespace std; // 你提交的代码将嵌入到这里 ; template &l ...
- 虚拟机创建后该如何获取IP地址并访问互联网实用教程
之前在做项目的时候主机IP地址.网关.DNS.子网掩码等都是公司或者对方直接给提供的,但是如果我们自己想搭建一台虚拟机或者一台集群的话,手头又没有IP地址,该肿么办呢? 白慌,这里介绍一个小技巧, ...
- 浏览器 滚动条 占据 y轴宽度的解决方案
html { overflow-y: scroll; } :root { overflow-y: auto; overflow-x: hidden; } :root body { position: ...
- POJ-3436 ACM Computer Factory 最大流 为何拆点
题目链接:https://cn.vjudge.net/problem/POJ-3436 题意 懒得翻,找了个题意. 流水线上有N台机器装电脑,电脑有P个部件,每台机器有三个参数,产量,输入规格,输出规 ...