CF1997B.Make Three Regions

普及-

通过率:0%

AC君温馨提醒

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

题目描述

有一个由 22 行 nn 列组成的网格。网格中的每个格子要么是空的,要么是被阻塞的。

如果至少满足以下条件之一,则空格 yy 可以从空格 xx 到达:

  • xx 和 yy 有公共边;
  • 存在一个空格 zz,使得 zz 可以从 xx 到达,且 yy 可以从 zz 到达。

一个连通区域是指网格中一组空格,这些格子两两可达,并且如果再加入任意一个其他空格,这个性质就不成立。

例如,考虑下图,白色格子为空,深灰色格子为阻塞:

其中有 33 个连通区域,分别用红色、绿色和蓝色表示:

给定的网格最多只包含 11 个连通区域。你的任务是计算有多少个空格满足以下条件:

  • 如果将该格子阻塞,连通区域的数量恰好变为 33。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn(1≤n≤2×1051 \le n \le 2 \times 10^5),表示列数。

接下来两行,每行一个长度为 nn 的字符串 sis_i,表示第 ii 行的网格。每个字符为 .(表示空格)或 x(表示阻塞格)。

输入的额外约束:

  • 给定的网格最多只包含 11 个连通区域;
  • 所有测试用例中 nn 的总和不超过 2×1052 \times 10^5。

输出格式

对于每个测试用例,输出一个整数,表示有多少个格子满足:如果将该格子阻塞,连通区域的数量恰好变为 33。

输入输出样例

  • 输入#1

    4
    8
    .......x
    .x.xx...
    2
    ..
    ..
    3
    xxx
    xxx
    9
    ..x.x.x.x
    x.......x

    输出#1

    1
    0
    0
    2

说明/提示

在第一个测试用例中,如果将格子 (1,3)(1, 3) 阻塞,连通区域的数量会变为 33(如题目中的图片所示)。

由 ChatGPT 4.1 翻译

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

首页