#G0132. 收集钻石【2025欢乐赛T6】

收集钻石【2025欢乐赛T6】

题目描述

江桥喜欢收集钻石!

地图是一个 n×mn \times m 的矩形区域,其中从上往下第 ii 行,从左往右第 jj 列的格子为 (i,j)(i,j)

所有格子只由空地(用 . 表示)、障碍(用 * 表示)、钻石(用 v 表示)组成,且整个地图中有且仅有一个钻石。

对于每张地图,江桥会发动恰好一次收集魔法:选定地图上的一个矩形区域,然后收集这个区域里(包括矩形边界上)的钻石(如果有的话)。

江桥发动魔法时,矩形区域的四个顶点的坐标必须是整数,且四个顶点的位置必须不为障碍物,且所有坐标不能超出地图的边界,同时矩形的面积不能为 00

形式化地,假设选定的矩形左上角坐标为 (x,y)(x,y),右下角坐标为 (x,y)(x^{'},y^{'}),则需要满足 $1 \leq x < x^{'} \leq n,1 \leq y < y^{'} \leq m;(x,y),(x,y^{'}),(x^{'},y),(x^{'},y^{'})$ 的位置均为不为障碍物。

江桥想知道,有多少个矩形可以收集到钻石。只要两个矩形的任意一个顶点坐标不同,那么在这两个矩形就被视为是不同的。由于答案可能过大,你只需要输出答案对 998244353998244353 取模后的值即可。

输入格式

第一行两个正整数 n,mn,m,表示地图的行数和列数。

接下来 nn 行,每行一个长度为 mm 的字符串 sis_i,表示地图的第 ii 行。

输出格式

一个整数,表示答案对 998244353998244353 取模后的值。

5 4
**.*
....
.v*.
.**.
...*
9

样例解释

样例中共有以下 99 个矩形满足条件:

(2,1),(3,2)(2,1),(3,2)

(2,1),(5,2)(2,1),(5,2)

(2,1),(5,3)(2,1),(5,3)

(3,1),(5,2)(3,1),(5,2)

(2,2),(5,3)(2,2),(5,3)

(2,2),(3,4)(2,2),(3,4)

(2,1),(3,4)(2,1),(3,4)

(2,1),(4,4)(2,1),(4,4)

(3,1),(4,4)(3,1),(4,4)

数据规模与约定

下发文件

下发文件对应子任务 44

有合理的子任务依赖。

子任务编号 n×mn \times m \leq 特殊性质 分值
11 2×1032 \times 10^3 地图中不存在障碍物 2020
22 3030
33 2×1052 \times 10^5 钻石在坐标(1,1)(1,1)
44 2020

对于 100%100\% 的数据:保证 $1 \leq n,m,n\times m \leq 2 \times 10^5,|s_i| = m,s_{i,j} \in \{.,*,v\}$ 且 v 恰好有一个。