luogu#P15962. [ICPC 2018 Jakarta R] Binary String
[ICPC 2018 Jakarta R] Binary String
题目描述
二进制字符串是由 和 组成的非空序列,例如 010110、1、11101 等。阿玉有一个她最喜欢的二进制字符串 ,该字符串不包含前导零。她想用计算器将 转换成它的 十进制 表示。
不幸的是,她的计算器无法处理任何大于 的整数,一旦超过就会崩溃。因此,阿玉可能需要从 中删除零个或多个二进制位,同时保持剩余位的顺序不变,使得其十进制表示不超过 。得到的二进制字符串也不能包含前导零。
你的任务是帮助阿玉确定从 中删除的最少二进制位数量,以满足阿玉的需求。
例如,设 ,。注意 的十进制表示为 ,因此我们需要从 中删除若干位,使其值不超过 。我们可以删除第 、第 和第 个最高有效位,即 。 的十进制表示为 ,不超过 。在这个例子中,我们删除了 位,这是可能的最小删除次数(如果只删除 位,我们将得到一个长度为 位的二进制字符串;注意到任何长度为 位的二进制字符串的十进制值至少为 )。
输入格式
输入的第一行包含一个整数 (),表示阿玉计算器的限制。第二行包含一个二进制字符串 (),表示阿玉最喜欢的二进制字符串。你可以假定 不包含前导零。
输出格式
输出一行一个整数,表示从 中删除的最少二进制位数量。
13
1100101
3
13
1111111
4
提示
样例输入 #1 的解释
该样例即为题目描述中给出的示例。
样例输入 #2 的解释
阿玉必须删除 位才能得到 ,其十进制表示为 。
翻译由 DeepSeek V3.2 完成