• BZOJ 1088: [SCOI2005]扫雷Mine( )


    枚举第一个的情况...判断一下是否冲突... 

    ------------------------------------------------------------------

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
     
    using namespace std;
     
    const int maxn = 10009;
     
    int N, num[maxn], T[maxn];
    bool F[maxn];
     
    bool check() {
    memcpy(T, num, sizeof(int) * N);
    for(int i = 0; i < N; i++) {
    if(F[i]) {
    if(--T[i] < 0) return false;
    if(i + 1 < N && --T[i + 1] < 0) return false;
    }
    if(T[i] > 1) return false;
    F[i + 1] = T[i];
    }
    return !T[N - 1];
    }
     
    int main() {
    scanf("%d", &N);
    for(int i = 0; i < N; i++) scanf("%d", num + i);
    int ans = 0;
    F[0] = 0; if(check()) ans++;
    F[0] = 1; if(check()) ans++;
    printf("%d ", ans);
    return 0;
    }

    ------------------------------------------------------------------

    1088: [SCOI2005]扫雷Mine

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 2327  Solved: 1360
    [Submit][Status][Discuss]

    Description

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

    Input

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

    Output

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

    Sample Input

    2
    1 1

    Sample Output

    2

    HINT

    Source

  • 相关阅读:
    数据分析1-2
    数据分析1-1
    数据分析案例:
    数据分析1:安装tushare安装包
    小爬爬7:回顾&&crawlSpider
    小爬爬6: 网易新闻scrapy+selenium的爬取
    小爬爬6:中间件
    小爬爬6:2请求传参
    前端 -----jQuery的选择器
    前端 ----jQuery的介绍
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/4939752.html
Copyright © 2020-2023  润新知