CF348D Turtles

题目描述

有一张 $n$ 行 $m$ 列的网格图,记第 $i$ 行第 $j$ 列的格子为 $(i,j)$。其中一些格子有障碍物,保证 $(1,1)$ 和 $(n,m)$ 都没有障碍物。 在 $(1,1)$ 处有两只乌龟,都想要去 $(n,m)$ 。每只乌龟每次都可以从格子 $(x,y)$ 走到 $(x,y+1)$ 和 $(x+1,y)$,但不能走到有障碍的格子中。 现要求两只乌龟在前往 $(n,m)$ 的路途中不可以相遇,即除了起点和终点,他们的路径没有其他公共点。 求出从起点到终点的不同路径对数,答案对 $10^9+7$ 取模。 注:$(route_a,route_b)$ 和 $(route_b,route_a)$ 被视为同一对路径。

输入格式

第一行两个整数 $n,m$。 接下来 $n$ 行,每行一个长度为 $m$ 的字符串 $s_i$,若 $s_{i,j}$ 为 `.`,则这个格子是空的。若 $s_{i,j}$ 为 `#`,则这个格子有障碍物。

输出格式

一行一个整数表示答案。

说明/提示

对于所有数据,$2\le n,m\le 3000$。