CF1083B The Fair Nut and Strings
题目描述
最近,Fair Nut 写下了 $k$ 个长度为 $n$ 的字符串,这些字符串仅由字母 "a" 和 "b" 组成。他计算了 $c$ —— 即至少是其中一个已写字符串前缀的字符串的数量。每个字符串只计数一次。
后来,他把写有这些字符串的纸弄丢了。他记得所有写下的字符串的字典序都不小于字符串 $s$,且不大于字符串 $t$。他想知道:他能得到的 $c$ 的最大值是多少。
字符串 $a$ 的字典序小于字符串 $b$ 当且仅当满足以下条件之一:
- $a$ 是 $b$ 的前缀,且 $a \ne b$;
- 在 $a$ 和 $b$ 第一个不同的位置,$a$ 的字母在字母表中比 $b$ 的对应字母更靠前。
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \leq n \leq 5 \cdot 10^5$,$1 \leq k \leq 10^9$)。
第二行包含一个长度为 $n$ 的字符串 $s$,该字符串仅由字母 "a" 和 "b" 组成。
第三行包含一个长度为 $n$ 的字符串 $t$,该字符串仅由字母 "a" 和 "b" 组成。
保证字符串 $s$ 的字典序不大于 $t$。
输出格式
输出一个整数,表示 $c$ 的最大值。
说明/提示
在第一个样例中,Nut 可以写下字符串 "aa"、"ab"、"ba"、"bb"。这 $4$ 个字符串的所有前缀 "a"、"b" 也是至少某个字符串的前缀。总共有 $6$ 个字符串。
在第二个样例中,Nut 可以写下字符串 "aba"、"baa"、"bba"。
在第三个样例中,只能写下两个不同的字符串。如果这两个都写下,则 $c=8$。
由 ChatGPT 4.1 翻译