/ 答案 / 讨论 / 游戏 /

扫雷

游戏……

2 条评论

  • @ 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