AT_oidashi_b.ライツアウト

通过率:0%

AC君温馨提醒

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

题目描述

有一天,太郎在散步时,天上掉下来了一台奇怪的机器。太郎对这台机器产生了兴趣,于是捡起来研究了一下。

这台机器上排列着 HH 行 WW 列的灯,每个灯有“开(ON)”和“关(OFF)”两种状态。如果按下某个灯,这个灯以及与其上下左右相邻的灯的状态都会反转。

(按下中央红圈的灯时的示意图)

但是,由于掉落时的冲击,有些灯坏掉了,无法被按下。不过,按下相邻的灯时,坏掉的灯的状态仍会像正常一样被反转。

太郎想知道,要将所有灯的状态都变为“关(OFF)”,最少需要按多少次灯。请你帮太郎求出将所有灯的状态都变为“关(OFF)”所需的最小按灯次数。

输入格式

输入通过标准输入给出,格式如下:

HH WW
s0,0s_{0,0} s0,1s_{0,1} ... s0,(W−1)s_{0,(W-1)}
s1,0s_{1,0} s1,1s_{1,1} ... s1,(W−1)s_{1,(W-1)}
...
s(H−1),0s_{(H-1),0} s(H−1),1s_{(H-1),1} ... s(H−1),(W−1)s_{(H-1),(W-1)}
NN
x1x_1 y1y_1
x2x_2 y2y_2
...
xNx_N yNy_N

  • 第 1 行,H, WH,\ W(5≤H,W5 \leq H, W,H×W≤400H \times W \leq 400)表示机器上灯的行数和列数。
  • 接下来的 HH 行,每行有 WW 个用空格分隔的数字 00 或 11,00 表示该灯为“关(OFF)”,11 表示该灯为“开(ON)”。
  • 第 H+1H+1 行,NN(0≤N≤W×H0 \leq N \leq W \times H)表示坏掉的灯的数量。
  • 接下来的 NN 行,每行两个整数 xix_i(0≤xi≤W−10 \leq x_i \leq W-1)、yiy_i(0≤yi≤H−10 \leq y_i \leq H-1),表示坏掉的灯的列和行坐标。
  • 保证一定存在一种操作方法可以将所有灯全部关掉。
  • 坏掉的灯的坐标不会重复。

输出格式

输出一个整数,表示将所有灯的状态变为“关(OFF)”所需的最小按灯次数。输出后请换行。

输入输出样例

  • 输入#1

    5 5
    0 0 0 0 0
    1 1 0 0 1
    0 1 1 1 1
    1 0 1 0 1
    1 0 0 0 0
    0

    输出#1

    5
  • 输入#2

    5 5
    0 0 0 0 0
    1 1 0 0 1
    0 1 1 1 1
    1 0 1 0 1
    1 0 0 0 0
    1
    1 2

    输出#2

    9

说明/提示

由 ChatGPT 4.1 翻译

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

首页