AT_joi2024ho_e.道路網の整備 2 (Road Service 2)

通过率:0%

AC君温馨提醒

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

题目描述

JOI 市有一个由无限延伸的 HH 条东西向道路和 WW 条南北向道路组成的网格状道路系统。北侧第 ii 条(1⩽i⩽H1 \leqslant i \leqslant H)东西向道路和西侧第 jj 条(1⩽j⩽W1 \leqslant j \leqslant W)南北向道路的交点称为交叉点 (i,j)(i, j)。

当前,部分道路由于维护不善而封闭,具体的封闭情况如下:

  • 北侧第 ii 条(1⩽i⩽H1 \leqslant i \leqslant H)东西向道路上,连接交叉点 (i,j)(i, j) 和 (i,j+1)(i, j+1) 的路段(1⩽j⩽W−11 \leqslant j \leqslant W-1),在 Ai,j=0A_{i, j} = 0 时封闭,Ai,j=1A_{i, j} = 1 时可通行。
  • 西侧第 jj 条(1⩽j⩽W1 \leqslant j \leqslant W)南北向道路上,连接交叉点 (i,j)(i, j) 和 (i+1,j)(i+1, j) 的路段(1⩽i⩽H−11 \leqslant i \leqslant H - 1),在 Bi,j=0B_{i, j} = 0 时封闭,Bi,j=1B_{i, j} = 1 时可通行。
  • 其他部分,即 H×WH \times W 个交叉点以外的部分全部封闭。

JOI 市的市长 K 理事长打算拟定这个道路网的整修计划。一次整修计划包含 00 次或多次整修。每进行一次整修,选择一个整数 ii (1⩽i⩽H1 \leqslant i \leqslant H),对于所有 1⩽j⩽W−11 \leqslant j \leqslant W-1,会将北侧第 ii 条东西向道路上,连接交叉点 (i,j)(i, j) 和 (i,j+1)(i, j+1) 的所有路段(如果封闭,则开放),该操作总共需要 CiC_{i} 天。这里 CiC_i 为 11 或 22。

同一整修计划中的多个整修不能同时进行。因此,执行整修计划所需的天数为所有包含的整修的天数之和。

为了先保证城市重要机构之间的流通,K 理事长向你提出了 QQ 个问题。第 kk 个(1⩽k⩽Q1 \leqslant k \leqslant Q)问题如下:

是否存在一个整修计划,使得 TkT_k 个交叉点 (Xk,1,Yk,1),(Xk,2,Yk,2),…,(Xk,Tk,Yk,Tk)(X_{k, 1}, Y_{k, 1}), (X_{k, 2}, Y_{k, 2}), \dots, (X_{k, T_k}, Y_{k, T_k}) 之间能够通过通畅的道路互相到达?如果存在,执行这样整修计划所需的最短天数是多少?

给定道路网的封闭状况、东西向每条道路的整修所需天数,以及所有 K 理事长的问题,请你编写程序输出所有问题的答案。


输入格式

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

HH WW QQ A1,1A1,2⋯A1,W−1A_{1,1}A_{1,2}\cdots A_{1,W - 1} A2,1A2,2⋯A2,W−1A_{2,1}A_{2,2}\cdots A_{2,W - 1} ⋮\vdots AH,1AH,2⋯AH,W−1A_{H,1}A_{H,2}\cdots A_{H,W - 1} B1,1B1,2⋯B1,WB_{1,1}B_{1,2}\cdots B_{1,W} B2,1B2,2⋯B2,WB_{2,1}B_{2,2}\cdots B_{2,W} ⋮\vdots BH−1,1BH−1,2⋯BH−1,WB_{H - 1,1}B_{H - 1,2}\cdots B_{H - 1,W} C1C_1 C2C_2 ⋯\cdots CHC_H Query1\mathrm{Query}_1 Query2\mathrm{Query}_2 ⋮\vdots QueryQ\mathrm{Query}_Q

每个 Queryk\mathrm{Query}_k(1⩽k⩽Q1 \leqslant k \leqslant Q)的格式如下:

TkT_k Xk,1X_{k,1} Yk,1Y_{k,1} Xk,2X_{k,2} Yk,2Y_{k,2} ⋮\vdots Xk,TkX_{k,T_k} Yk,TkY_{k,T_k}

输出格式

请按顺序输出 QQ 行。第 kk 行(1⩽k⩽Q1 \leqslant k \leqslant Q)输出:如果存在能够使 TkT_k 个交叉点 (Xk,1,Yk,1),(Xk,2,Yk,2),…,(Xk,Tk,Yk,Tk)(X_{k, 1}, Y_{k, 1}), (X_{k, 2}, Y_{k, 2}), \dots, (X_{k, T_k}, Y_{k, T_k}) 互相连通的整修计划,则输出所需天数的最小值;否则输出 -1。


输入输出样例

  • 输入#1

    4 3 4
    00
    00
    00
    00
    100
    001
    000
    1 1 1 1
    2
    1 1
    3 3
    2
    3 1
    1 2
    2
    2 3
    3 3
    2
    4 2
    3 2

    输出#1

    1
    3
    0
    -1
  • 输入#2

    4 4 4
    100
    110
    011
    010
    0010
    1001
    0101
    1 1 1 1
    2
    1 2
    3 1
    2
    1 4
    4 1
    2
    3 2
    1 2
    2
    4 3
    1 1

    输出#2

    1
    3
    2
    2
  • 输入#3

    7 3 3
    10
    00
    00
    10
    00
    01
    00
    110
    101
    011
    001
    110
    100
    1 1 1 1 1 1 1
    3
    7 2
    3 1
    3 2
    3
    3 1
    6 3
    2 3
    7
    2 2
    1 3
    7 3
    5 2
    1 2
    7 2
    3 1

    输出#3

    3
    2
    4
  • 输入#4

    4 3 3
    00
    00
    10
    00
    110
    011
    001
    1 2 2 2
    2
    1 1
    3 1
    2
    4 3
    2 1
    2
    4 1
    1 3

    输出#4

    1
    2
    5
  • 输入#5

    7 3 2
    01
    00
    00
    00
    00
    10
    01
    100
    110
    011
    001
    101
    001
    1 1 2 1 1 2 2
    3
    7 2
    1 3
    5 1
    5
    1 1
    2 2
    3 1
    2 3
    4 2

    输出#5

    4
    1

说明/提示

子任务

  1. (1010 分) Ci=1C_i = 1(1⩽i⩽H1 \leqslant i \leqslant H),Q⩽5Q \leqslant 5,Tk=2T_k = 2(1⩽k⩽Q1 \leqslant k \leqslant Q),Ai,j=0A_{i, j} = 0(1⩽i⩽H,1⩽j⩽W−11 \leqslant i \leqslant H, 1 \leqslant j \leqslant W - 1)。
  2. (66 分) Ci=1C_i = 1(1⩽i⩽H1 \leqslant i \leqslant H),Q⩽5Q \leqslant 5,Tk=2T_k = 2(1⩽k⩽Q1 \leqslant k \leqslant Q)。
  3. (1515 分) Ci=1C_i = 1(1⩽i⩽H1 \leqslant i \leqslant H),Q⩽5Q \leqslant 5。
  4. (1111 分) Ci=1C_i = 1(1⩽i⩽H1 \leqslant i \leqslant H),Tk=2T_k = 2(1⩽k⩽Q1 \leqslant k \leqslant Q)。
  5. (66 分) Ci=1C_i = 1(1⩽i⩽H1 \leqslant i \leqslant H)。
  6. (1212 分) Q⩽5Q \leqslant 5。
  7. (2626 分) Tk=2T_k = 2(1⩽k⩽Q1 \leqslant k \leqslant Q)。
  8. (1414 分) 无额外限制。

样例解释 1

以下是当前的道路封闭状况。灰色表示封闭,蓝色表示可通行。

  • 第 11 个询问中,若选择 i=2i=2 进行整修,则整修后的道路状况如下图所示,交叉点 (1,1)(1, 1)、(3,3)(3, 3) 可以互相连通。

    这个仅包含一次整修的整修计划需要 11 天,且不存在更短时间能让这两点连通的方案,因此输出 11。
  • 第 22 个询问,若对 i=1,2,3i=1,2,3 依次进行三次整修,可以让 (3,1)(3,1)、(1,2)(1,2) 互通。此时所需天数为 33,不存在更优答案,因此输出 33。
  • 第 33 个询问,两点 (2,3),(3,3)(2,3),(3,3) 已经连通,无需整修,输出 00。
  • 第 44 个询问,无法让 (4,2),(3,2)(4,2),(3,2) 连通,因此输出 −1-1。

本例输入满足子任务 1,2,3,4,5,6,7,81,2,3,4,5,6,7,8 的限制。


样例解释 2

本例输入满足子任务 2,3,4,5,6,7,82,3,4,5,6,7,8 的限制。


样例解释 3

本例输入满足子任务 3,5,6,83,5,6,8 的限制。


样例解释 4

本例输入满足子任务 6,7,86,7,8 的限制。


样例解释 5

本例输入满足子任务 6,86,8 的限制。

数据范围

  • 2⩽H2 \leqslant H。
  • 2⩽W2 \leqslant W。
  • H×W⩽1 000 000H \times W \leqslant 1\,000\,000。
  • 1⩽Q⩽100 0001 \leqslant Q \leqslant 100\,000。
  • Ai,jA_{i, j} 为 00 或 11,1⩽i⩽H,1⩽j⩽W−11 \leqslant i \leqslant H, 1 \leqslant j \leqslant W-1。
  • Bi,jB_{i, j} 为 00 或 11,1⩽i⩽H−1,1⩽j⩽W1 \leqslant i \leqslant H-1, 1 \leqslant j \leqslant W。
  • CiC_i 为 11 或 22,1⩽i⩽H1 \leqslant i \leqslant H。
  • 2⩽Tk2 \leqslant T_k,1⩽k⩽Q1 \leqslant k \leqslant Q。
  • T1+T2+⋯+TQ⩽200 000T_1+T_2+\cdots+T_Q \leqslant 200\,000。
  • 1⩽Xk,l⩽H1 \leqslant X_{k, l} \leqslant H,1⩽k⩽Q,1⩽l⩽Tk1 \leqslant k \leqslant Q, 1 \leqslant l \leqslant T_k。
  • 1⩽Yk,l⩽W1 \leqslant Y_{k, l} \leqslant W,1⩽k⩽Q,1⩽l⩽Tk1 \leqslant k \leqslant Q, 1 \leqslant l \leqslant T_k。
  • (Xk,1,Yk,1),…,(Xk,Tk,Yk,Tk)(X_{k, 1}, Y_{k, 1}),\dots,(X_{k, T_k}, Y_{k, T_k}) 互不相同(1⩽k⩽Q1 \leqslant k \leqslant Q)。
  • 所有输入均为整数。

由 ChatGPT 5 翻译

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

首页