AT_joi2011yo_f.JOI 旗 (JOI Flag)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
日本信息奥林匹克委员会为了宣传今年的日本信息奥林匹克(JOI),计划制作一种以 JOI 字母为主题的旗帜。这种旗帜需要设计成「好的旗帜」。所谓「好的旗帜」,是指由字母 J、O、I 组成的 M 行 N 列的矩形排列,并且至少有一个区域满足下图所示的排列:J 的右边是 O,而 J 的下面是 I。
以下展示了两个「好的旗帜」的示例:

反之,下图中的两个则不是「好的旗帜」:

现在,你需要根据已知的 M 和 N 值,以及部分确定为 J、O、I 的位置,来计算所有可能的「好的旗帜」的总数。请输出这些「好的旗帜」数量对 100000 (= 105) 取模的结果。
输入格式
输入包括 1+M 行。
第 1 行包含两个整数 M 和 N (2≤M≤20,2≤N≤20),表示旗帜的行数和列数。
接下来的 M 行,每行是一个长度为 N 的字符串,其中每个字符可以是 J、O、I 或 ?。若某位置为 J、O 或 I,则表示此位置的字母已确定;若为 ?,则表示此位置的字母尚未确定。
输出格式
输出一个整数,表示所有可能的「好的旗帜」数量对 100000 (= 105) 取模的结果。
输入输出样例
输入#1
2 3 ??O IIJ
输出#1
4
输入#2
2 2 ?? ??
输出#2
3
输入#3
3 3 ??I ??? O?J
输出#3
53
输入#4
5 4 JOI? ???? ???? ???? ?JOI
输出#4
28218
说明/提示
样例解释 1
在样例1中,有以下四种「好的旗帜」的可能性:

样例解释 4
在样例4中,总共有 2428218 种「好的旗帜」,所以需要输出它对 100000 (= 105) 取模后的结果 28218。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?