- 游戏
- 2021-11-21 14:29:46 @
游戏……
2 条评论
-
董由 LV 4 MOD @ 2021-12-02 19:07:25
怎么登
-
2021-11-21 14:29:52@
#include<iostream>
#include<vector>
#include<cstring>
const int maxn=10005;
using namespace std;
int n,a[maxn];
int f[maxn][2][2]; //f[i][k][t] 表示第i行 和第i+1行的雷的情况
int main() {
ios::sync_with_stdio(false);
//freopen("扫雷.in","r",stdin);
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
f[0][0][0]=f[0][0][1]=1;
for(int i=1; i<=n; i++){
if(a[i]==0){
f[i][0][0]=f[i-1][0][0];
}
if(a[i]==1){
f[i][0][1]=f[i-1][0][0];
f[i][0][0]=f[i-1][1][0];
f[i][1][0]=f[i-1][0][1];
}
if(a[i]==2){
f[i][0][1]=f[i-1][1][0];
f[i][1][0]=f[i-1][1][1];
f[i][1][1]=f[i-1][0][1];
}
if(a[i]==3){
f[i][1][1]=f[i-1][1][1];
}
}
cout<<f[n][1][0]+f[n][0][0];
return 0;
}
- 1