问题 F: 最少翻转多少次

内存限制:1024 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:5 解决:1

题目描述

小明做游戏,现在有一个字符串s,还有一个数字k。数字k代表字符串s出现多少次。最终字符串T=(s1,s2,,,,,,sk)。例如s是101,k=2,那么T为101101。现在我们可以将T中[l,r]区间的0变为1同时1变为0,这样即为翻转一次。问你最少需要多少次翻转才能将T变为一个全为0的串或者全为1的串。但是问题没有那么简单,现在s串里面不仅有0,1还有?。?代表这个地方既可以是0也可以是1.所以我们要讨论2的k次方种情况(k为?出现的次数)。并且求出每种情况的最少翻转次数,并且取和。答案可能很大,答案对1e9+7取模。

输入

s
k
1<=|s|<=1e5
1<=k<=1e9

输出

一共最少需要的翻转次数

样例输入 复制

101
2

样例输出 复制

2

提示

样例中s为101那么T为101101最少需要2次
样例2
输入
?0?
1
输出
3
可能的情况000,100,001,101