暴力
我们的暴力很暴力。(不愧是暴力)
D F S DFS DFS
我…我 T M TM TM还打 D P DP DP。
思路
直接暴搜,每搜一格判断上格可不可以,所以我们要到了 n + 1 n+1 n+1才能判断是否符合要求。可以使用剪枝,否则会 T L E TLE TLE。
我们对于每个点只有两种方案:有无雷。
至于剪枝:
我们对于第 x x x点进行选择后,看 x − 1 x-1 x−1这个点是否符合要求(我们 x + 1 x+1 x+1没确定,所以不能看 x x x点是否符合要求)。
代码
#include <bits/stdc++.h>
using namespace std;
int n,a[10005],ans;
bitset<10005> check;
bool yu(int x) {
return check[x-1]+check[x]+check[x+1]==a[x]; }
void dfs(int x) {
if(x==n+1) {
if(yu(n)) ans++;
return ;
}
check[x]=1;
if(x==