AT_kupc2017_j.Paint Red and Make Graph

通过率:0%

AC君温馨提醒

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

题目描述

给你一个 HH 行 WW 列的棋盘。每个格子最初被染成白色或者黑色,若 ai,ja_{i,j} 是 .,则表示第 ii 行第 jj 列的格子是白色;若 ai,ja_{i,j} 是 #,则该格子是黑色。你的任务是将一些白色格子涂成红色,并满足以下条件:

  • 每一行和每一列至少要有一个红色格子。
  • 构建一个图,使其满足:
    • 为每个红色格子创建一个顶点(因此,顶点数与红色格子数相等)。
    • 在同一行或同一列上的红色格子对应的顶点之间连一条边。
    • 整个图要保持连通。

请找到白色格子涂成红色的最少数量,并计算出这种情况下的所有方案数,答案对 109+710^9 + 7 取模。如果没有符合条件的方案,输出 -1。

输入格式

输入是标准输入,格式如下:

HH WW
a1,1a_{1,1} …\ldots a1,Wa_{1,W}
...
aH,1a_{H,1} …\ldots aH,Wa_{H,W}

输出格式

输出一行,包括两个整数:第一个是最小化后需要涂成红色的格子数,第二个是所有满足条件的方案数对 109+710^9 + 7 取模的结果。如果无解,输出 -1。

输入输出样例

  • 输入#1

    2 3
    ...
    .#.

    输出#1

    4 4
  • 输入#2

    2 3
    #..
    .##

    输出#2

    -1
  • 输入#3

    3 10
    ...#...#..
    #...#...#.
    ..##......

    输出#3

    12 35640
  • 输入#4

    6 6
    ......
    ......
    ......
    ......
    ......
    ......

    输出#4

    11 60466176

说明/提示

  • 1≤H≤1041 \leq H \leq 10^4
  • 1≤W≤501 \leq W \leq 50
  • HH 和 WW 均为整数。
  • ai,ja_{i,j} 为 . 或 #。

本翻译由 AI 自动生成

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

首页