博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
阅读量:6975 次
发布时间:2019-06-27

本文共 692 字,大约阅读时间需要 2 分钟。

扫雷玩得好还是有点好处的......

这个题一开始像从后向前按照第一排的数字进行DFS 发现自己真傻,先不说这种情况下每个数字的填写情况很多, 还要处理相邻位置的问题。

所以可以对每一位有没有地雷进行枚举。处理每一位的时候,要保证上一个数字是合理的,否则不用进行下去了,类似回溯,注意have变量的处理就好了。

#include 
#include
using namespace std;//最长 暗示dfs//遇到3 和 0 其实只有一种情况//遇到2 和 1 有三种情况//遇到* 有 2+2*3 = 8种情况,//可见如果以数字为dfs的条件的话 很麻烦 还不如直接用0 1 来枚举每个炸弹的位置//其实如果数据小的话 可以直接遍历所有可能解 然后进行验证 但是因为n过大,全部情况根本没有办法枚举完,另外就是验证的效率很低//所以还是dfsint n;string nums;bool isMine[100000+10]={
false};void init(){ cin>>n; cin>>nums;}bool have = false;int alreadyHave(int cur){ int res = 0; res += isMine[cur]; if(cur>0) res += isMine[cur-1]; if(cur

 

转载于:https://www.cnblogs.com/yuchenlin/p/sjtu_oj_1229.html

你可能感兴趣的文章
CSS基础语法
查看>>
使用栈实现队列(1)(Java)
查看>>
N皇后问题
查看>>
安装系统需要设置BIOS
查看>>
WPF 浏览器应用程序(page页面)如何全屏
查看>>
用户角色权限
查看>>
java读取xml(当xml放在包里时)
查看>>
图解Raid5数据存储的原理
查看>>
多线程面试题系列(1):多线程笔试面试题汇总
查看>>
近期解雇4000人,总解雇人数将超过7.5万 思科依然锋芒万丈
查看>>
HDU 1251 统计难题
查看>>
bzoj3707: 圈地
查看>>
centos7.3.1611安装及初始配置
查看>>
springboot热部署
查看>>
MySQL学习(五) UNION与UNION ALL
查看>>
C语言解释器的实现--词法分析(二)
查看>>
排序算法(一)冒泡排序
查看>>
爬虫_淘宝(selenium)
查看>>
关于常用的web.xml、applicationContext.xml与springMVC-servlet.xml
查看>>
metasploit篇-02
查看>>