目录
一,方程组

假设3个格子对应的未知数分别是x1 x2 x3,表示格子中的雷的数量
则根据x2右边的2可得,x1+x2+x3=2
根据x3右边的3可得,x2+x3=1
所以,求解方程组可得,x1=1
验证答案:

二,不等式组
扫雷的推理过程中,无论有几个未知数,每个未知数x都自带一个不等式0<=x<=1

这里我们列出不等式组
0<=x1<=1
0<=x2<=1
0<=x3<=1
0<=x4<=1
x1+x2+x3=2
x2+x3+x4=1
求解这个不等式组:
首先我们得到x2+x3<=1
所以我们就可以得到x1=1,x2+x3=1,x4=0
验证答案:

三,无计算推理
1,无计算推理的原理
实际扫雷时,我们会大量运用这样的一条策略:双击某个数字,如果只剩1个格子未标记,则标记它。
这个方法不需要做任何的计算,但是却有奇效。
2,扫雷代码V3
为了直观的感受这个单一策略的上限有多高,我基于串行扫雷里面的扫雷代码V1做微调,加入2条自动规则:
(1)如果一个格子周围只有一个格子未标记,且双击无反应,则自动标记
(2)如果一个格子周围标记的数量达标,则自动双击。
我们看下在自动规则下,串行的去扫雷还需要多少步骤。
代码:
#include <iostream>
#include <string>
#include <vector>
#include <time.h>
#include <functional>
#include <algorithm>
#include <vector>
#

最低0.47元/天 解锁文章
4870

被折叠的 条评论
为什么被折叠?



