• [BZOJ1088] [SCOI2005] 扫雷Mine


    Description

      相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了
    ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字
    表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 
    由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放
    方案。

    Input

      第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)

    Output

      一个数,即第一列中雷的摆放方案数。

    Sample Input

    2
    1 1

    Sample Output

    2

    HINT

    Source

    Solution

      假如第一个格子确定了,那么剩余的格子就可以推算出来了,第一个格子只有$2$种情况(即有雷和无雷),都做一遍就行了

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int g[10005][3];
     4 int main()
     5 {
     6     int n, w, ans = 0;
     7     bool flag = true;
     8     cin >> n;
     9     for(int i = 1; i <= n; ++i)
    10         cin >> g[i][2];
    11     g[1][1] = 1;
    12     for(int i = 2; i <= n; ++i)
    13     {
    14         w = g[i - 2][1] + g[i - 1][1];
    15         if(g[i - 1][2] - w == 1)
    16             g[i][1] = 1;
    17         else if(!(g[i - 1][2] - w))
    18             continue;
    19         else
    20             flag = false;
    21     }
    22     if(g[n - 1][1] + g[n][1] != g[n][2])
    23         flag = false;
    24     ans += flag;
    25     flag = true;
    26     for(int i = 1; i <= n; ++i)
    27         g[i][1] = 0;
    28     for(int i = 2; i <= n; ++i)
    29     {
    30         w = g[i - 2][1] + g[i - 1][1];
    31         if(g[i - 1][2] - w == 1)
    32             g[i][1] = 1;
    33         else if(!(g[i - 1][2] - w))
    34             continue;
    35         else
    36             flag = false;
    37     }
    38     if(g[n - 1][1] + g[n][1] != g[n][2])
    39         flag = false;
    40     ans += flag;
    41     cout << ans << endl;
    42     return 0;
    43 }
    View Code
  • 相关阅读:
    云架构师进阶攻略(3)
    微服务化之服务拆分与服务发现
    终于有人把云计算、大数据和人工智能讲明白了!(1)
    JavaScript的数组详解
    html中给元素添加背景图片或者gif动图
    JavaScript的事件
    JavaScript的匿名函数
    JavaScript获取和操作html的元素
    JavaScript的条件运算符与条件语句
    JavaScript变量、数据类型、函数
  • 原文地址:https://www.cnblogs.com/CtrlCV/p/5618788.html
Copyright © 2020-2023  润新知