草庐IT

「题解报告」P3167 [CQOI2014]通配符匹配

「题解报告」P3167[CQOI2014]通配符匹配思路*和?显然无法直接匹配,但是可以发现「通配符个数不超过\(10\)」,那么我们可以考虑分段匹配。我们首先把原字符串分成多个以一个通配符开头的字符串,如将happy*birthday?xingchen分成:happy*birthday?xingchen然后设原串有\(m\)个通配符,\(op_i\)表示分出来的第\(i\)个串前的通配符(\(0\)没有,\(1\)是?,\(2\)是*),\(len_i\)表示分出来的第\(i\)个串的长度,\(f_{i,j}\)表示分出来的第\(i\)个串的结尾能否匹配上当前查询的字符串的位置\(j\)。则

「题解报告」P3167 [CQOI2014]通配符匹配

「题解报告」P3167[CQOI2014]通配符匹配思路*和?显然无法直接匹配,但是可以发现「通配符个数不超过\(10\)」,那么我们可以考虑分段匹配。我们首先把原字符串分成多个以一个通配符开头的字符串,如将happy*birthday?xingchen分成:happy*birthday?xingchen然后设原串有\(m\)个通配符,\(op_i\)表示分出来的第\(i\)个串前的通配符(\(0\)没有,\(1\)是?,\(2\)是*),\(len_i\)表示分出来的第\(i\)个串的长度,\(f_{i,j}\)表示分出来的第\(i\)个串的结尾能否匹配上当前查询的字符串的位置\(j\)。则