D. 动物园里有什么

    传统题 1000ms 256MiB

动物园里有什么

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

动物园里有什么?大老虎、大狮子、大灰狼……当这三种猛兽真的在动物园里相遇,就给园长出了个不小的难题。

具体来说,动物园里有一片 N 行 M 列的方格形场地,每格的状态可用字符 'X' 或 '?' 表示。'X' 表示该格没有笼子,因此不能饲养猛兽;'?' 表示该格有笼子,可以饲养任意一只猛兽。

可供饲养的三种猛兽中,老虎是独居动物,不能与任何动物相邻;狼和狮子是群居动物,它们都只能与同类相邻。(如果任意两格有共同边,我们就称这两格相邻。)

糟糕的是,未来 T 个月内,每个月都会有一只笼子损毁。也就是说,该笼子此前一直处于正常使用状态,但从该月起永久失效。数据保证,每个月都至少有一个可供使用的笼子,即不会所有笼子均失效。

园长想知道,要将场地内所有可供使用的笼子放满猛兽,每个月分别有多少种排布方案。(答案需对 109+710^9 + 7 取模。)

输入格式

第 1 行为 3 个整数 N, M, T,表示场地有 N 行 M 列,要经过 T 个月。

接下来 N 行,每行 M 个字符,均为 'X' 或 '?',表示每格的状态。

接下来 T 行,每行两个整数 R, C,表示第 R 行第 C 列的笼子将从该月起失效,不能再存放猛兽。

输出格式

共 T+1 行,每行一个整数,为该月的可行排布方案数,答案需对 109+710^9 + 7 取模。

输入输出样例

3 4 2
?XX?
X??X
??X?
1 4
2 2
54
18
54
3 3 5
???
???
???
2 2
2 1
2 3
1 2
3 2
2
2
2
4
18
81

样例 1 解释

初始状态下,左上角、右上角和右下角的笼子均无相邻,因此各有 3 种可能。其余 4 个笼子只能全放狮子或全放狼,不能存放老虎,因此共 3 × 3 × 3 × 2 = 54 种排布方案。

第 1 个月后,右上角的笼子失效,其余笼子无变化,共 3 × 3 × 2 = 18 种方案。

第 2 个月后,第 2 行第 2 列的笼子也失效,新的状态如下图所示:

?XXX
XX?X
??X?

此时,左上角、右下角和第 2 行第 3 列的笼子不与其他相邻,各有 3 种可能。左下角有两个笼子相邻,只能一起存放狮子或狼。因此共 3 × 3 × 3 × 2 = 54 种方案。

数据范围与约定

对于 20% 的数据,N=1,T=0N = 1, T = 0;

对于 40% 的数据,0<N,M100,T=00 < N, M ≤ 100, T = 0;

对于 60% 的数据,0<N,M100,0T1000 < N, M ≤ 100, 0 ≤ T ≤ 100;

对于 80% 的数据,0<N,M1000,0T10000 < N, M ≤ 1000, 0 ≤ T ≤ 1000;

对于 100% 的数据,0<N,M1000,0T1050 < N, M ≤ 1000, 0 ≤ T ≤ 10^5。

CSMOI2025暑假摸底测试#1

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-5-9 18:30
结束于
2025-5-9 21:00
持续时间
2.5 小时
主持人
参赛人数
14