传统题 1000ms 256MiB

mul

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

我们现在想用加法,减法和左移来模拟乘法。具体的,给一个算式 x×ax \times a,想把它替换成 $(x \ll a_0) \ \text{op}_1 \ (x \ll a_1) \ \text{op}_2 \ \ldots \ \text{op}_n \ (x \ll a_n)$。其中 opi\text{op}_i 必须是加法或者减法。

对于所有的左移(包括左移 0 位),加法、减法都需要花费一单位时间计算。给定 aa 的二进制表示,问最少需要多少的时间可以计算。

输入格式

一行输入 01 串,表示 aa 的二进制表示,左边为高位。

输出格式

输出一个整数,表示答案。

输入输出样例 #1

输入 #1

1111

输出 #1

3

说明/提示

样例解释 1

x×15=(x4)(x0)x \times 15 = (x \ll 4) - (x \ll 0)

所以一共需要 3 的时间(两次左移和一次减法)。

数据规模

共 10 个测试点。

  • 测试点 1,2 满足 a10|a| \leq 10
  • 测试点 3,4,5 满足 a1000|a| \leq 1000
  • 对于所有数据,满足 1a1061 \leq |a| \leq 10^6,并且最高位不为 0。

国庆集训10.08

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-10-8 8:30
结束于
2025-10-8 11:30
持续时间
3 小时
主持人
参赛人数
6