#P15856. [蓝桥杯第二届国际赛] 游览

    ID: 15795 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>2018LGV 引理容斥原理蓝桥杯国赛

[蓝桥杯第二届国际赛] 游览

说明

小 E 去一个城市玩,发现这里的道路都是东西向(称为大街,Street)或南北向的(称为大道,Avenue),将街区分成了很多个方块。

城市中一共有 nn 条大街,从南向北依次编号 11nn,有 mm 条大道,从东向西依次编号 11mm。这些大街和大道将城市分区了很多块区域,每一块都相与两条大街和两条大道相邻。有的区域是一个整块,行人无法进入。有的区域被分成了 2×22 \times 2 的小块,行人可以从正中间的道路通过。下图中给出了一个 33 条大街和 44 条大道的例子,一共有 66 块区域。

:::align{center} :::

小 E 现在正站在第 11 大街第 11 大道,他打算游览这个城市,他的计划是走到第 nn 大街第 mm 大道,然后再走回来。小 E 不想绕路,也不想走重复的路,所以他希望去和回都是走的最短路径,并且路径中不会经过同一段路两次。

有很多种方案都能满足小 E 的要求,请告诉小 E 一共有多少种方案。

输入格式

输入的第一行包含两个整数 n,mn, m,分别表示大街数量和大道数量。

接下来 n1n-1 行,每行包含 m1m-1 个整数,表示每块区域的信息,如果对应的整数是 00,表示一个行人无法进入的整块区域,如果对应的整数是 11,表示一个分成 2×22 \times 2 小块的区域。为了方便与地图对应,输入的从上到下对应地图的从北到南,输入的从左到右对应地图的从西到东。

因此,从输入来看,小 E 现在站在右下角,他要走到左上角再走回右下角。

输出格式

输出一个整数,表示总共有多少种方案。如果方案太多,请输出方案数除以 10001000 的余数。

3 4
0 0 1
1 0 0
100

提示

【样例说明】

对应着问题描述中的例子。注意原题样例输出是 1818,这应当是错误的,只统计了单程最短路条数。

【数据规模与约定】

对于 20%20\% 的评测用例,1n,m51 \le n, m \le 5

对于 40%40\% 的评测用例,1n,m201 \le n, m \le 20

对于 60%60\% 的评测用例,1n,m1001 \le n, m \le 100

对于 100%100\% 的评测用例,1n,m10001 \le n, m \le 1000