102005: [AtCoder]ABC200 F - Minflip Summation
Description
Score : $600$ points
Problem Statement
We have a string $S$ consisting of 0
, 1
, and ?
. Let $T$ be the concatenation of $K$ copies of $S$.
By replacing each ?
in $T$ with 0
or 1
, we can obtain $2^{Kq}$ strings, where $q$ is the number of ?
s in $S$. Solve the problem below for each of these strings and find the sum of all the answers, modulo $(10^9+7)$.
Let $T'$ be the string obtained by replacing
?
in $T$. We will repeatedly do the operation below to make all the characters in $T$ the same. At least how many operations are needed for this?
- Choose integers $l$ and $r$ such that $1 \le l \le r \le |T'|$, and invert the $l$-th through $r$-th characters of $T$: from
0
and1
and vice versa.
Constraints
- $1 \le |S| \le 10^5$
- $1 \le K \le 10^9$
Input
Input is given from Standard Input in the following format:
$S$ $K$
Output
Print the answer as an integer.
Sample Input 1
101 2
Sample Output 1
2
We have $T=$ 101101
, which does not contain ?
, so we just need to solve the problem for the only $T'=$ 101101
.
We can make all the characters the same in two operations as, for example, 101101
$\rightarrow$ 110011
$\rightarrow$ 111111
.
We cannot make all the characters the same in one or fewer operations.
Sample Input 2
?0? 1
Sample Output 2
3
We have four candidates for $T'$: 000
, 001
, 100
, and 101
.
Sample Input 3
10111?10??1101??1?00?1?01??00010?0?1?? 998244353
Sample Output 3
235562598
Since the answer can be enormous, find it modulo $(10^9+7)$.