CF2199C.Minesweeper

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你需要为“扫雷”游戏构造一个由 22 行和若干列组成的棋盘。每个格子要么为空,要么放置地雷。我们称两个格子相邻,当且仅当它们具有公共边或公共角。

你构造的棋盘必须满足以下约束条件:

  • 每个空白格最多只与 11 个地雷相邻;
  • 恰好有 kk 个空白格与至少一个地雷相邻;
  • 在所有满足上述条件的棋盘中,要求列数尽可能少。

请你构造出这样的棋盘,或者输出无解。

输入格式

第一行包含一个整数 tt(1≤t≤1001 \le t \le 100),表示测试用例个数。

每个测试用例占一行,包含一个整数 kk(1≤k≤1001 \le k \le 100),表示需要有 kk 个与地雷相邻的空白格。

输出格式

对每个测试用例,按如下格式输出答案:

  • 如果无法构造出符合要求的棋盘,输出 NO;
  • 否则,第一行输出 YES,第二行输出一个整数 nn,表示棋盘的最小列数。第三行和第四行分别输出两行,每行由 nn 个字符组成,每个字符为 “.”(空白格)或 “*”(地雷)。如果有多种方案,输出任意一种均可。

输入输出样例

  • 输入#1

    5
    1
    4
    8
    10
    9

    输出#1

    YES
    1
    *
    .
    NO
    YES
    5
    *....
    ...*.
    YES
    6
    .*..*.
    ......
    NO

说明/提示

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页