社区讨论
40pt 求条
P1874快速求和参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhji9vj4
- 此快照首次捕获于
- 2025/11/04 03:01 4 个月前
- 此快照最后确认于
- 2025/11/04 03:01 4 个月前
CPP
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
string s;
int n, t, len;
int ans = 0x3f;
void dfs(int l, int r, int sum, int cnt) {
if (r - l + 1 >= t) return;
if (cnt >= ans) return;
if (sum > n) return;
if (r > len) return;
if (r == len) {
int res = 0;
for (int i = l; i <= r; i++) {
res *= 10;
res += (s[i] - '0');
}
if (sum + res == n) ans = min(ans, cnt);
return;
}
dfs(l, r + 1, sum, cnt);
int res = 0;
for (int i = l; i <= r; i++) {
res *= 10;
res += (s[i] - '0');
}
dfs(r + 1, r, sum + res, cnt + 1);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> s >> n;
int m = n;
len = s.length();
s = '%' + s;
while (m > 0) {
t++;
m /= 10;
}
dfs(1, 0, 0, 0);
cout << ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...