A2887 | 快速求和
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定一个数字字符串,用最小次数的加法让字符串等于一个给定的目标数字。每次加法就是在字符串的某个位置插入一个加号。在里面要的所有加号都插入后,就像做普通加法那样来求值。
例如,考虑字符串
再举一例,考虑字符串
例如,考虑字符串
12,做 $0$ 次加法,我们得到数字 $12$。如果插入 $1$ 个加号,我们得到 $3$,因此,这个例子中,最少用 $1$ 次加法就得到数字 $3$。再举一例,考虑字符串
303和目标数字 $6$,最佳方法不是3+0+3。而是3+03。能这样做是因为一个数的前导 $0$ 不会改变它的大小。输入格式
第一行:一个字符串 $s$。
第二行:一个整数 $n$。
第二行:一个整数 $n$。
输出格式
一行一个整数表示最少的加法次数让 $s$ 等于 $n$。如果怎么做都不能让 $s$ 等于 $n$ ,则输出 $-1$。
输入输出样例
输入 #1
99999 45
输出 #1
4
#### 数据规模与约定
对于 $100\%$ 的数据,保证 $1\le \operatorname{len}(s)\le40$,$1 \leq n\le10^5$。
对于 $100\%$ 的数据,保证 $1\le \operatorname{len}(s)\le40$,$1 \leq n\le10^5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted