CF1147D Palindrome XOR
题目描述
给定一个由字符 “1”、“0” 和 “?” 组成的字符串 $s$。保证 $s$ 的第一个字符为 “1”。设 $m$ 为 $s$ 的长度。
请你统计有多少对整数 $a, b$ 满足以下条件:
- $1 \leq a < b < 2^m$;
- $a$ 和 $b$ 的二进制表示(不含前导零)都是回文串;
- $a$ 和 $b$ 按位异或后的二进制表示与 $s$ 匹配。这里称 $t$ 与 $s$ 匹配,指的是 $t$ 和 $s$ 长度相同,且对于每个 $i$,$t$ 的第 $i$ 个字符等于 $s$ 的第 $i$ 个字符,或者 $s$ 的第 $i$ 个字符为 “?”。
请你输出满足条件的对数,答案对 $998244353$ 取模。
输入格式
第一行输入一个字符串 $s$($1 \leq |s| \leq 1000$),仅包含 “1”、“0” 和 “?”。保证 $s$ 的第一个字符为 “1”。
输出格式
输出一个整数,表示满足条件的对数,对 $998244353$ 取模。
说明/提示
对于第一个样例,满足条件的二进制对为 $(111, 10001), (11, 10101), (1001, 11111)$。
由 ChatGPT 4.1 翻译