题解:AT_abc407_c [ABC407C] Security 2

思路

首先直接用搜索做是会超时的。

首先你至少要按 s 的长度次按钮保证长度达到。

那么我们考虑用一个变量 t,反过来遍历 s 来求出集体加的最少次数。

c = t \\bmod 10,如果 c 小于当前的 s_i,那么 t 就加上 t-c,否则就加上 t-c+10

最后答案就是 t 加上 s 的长度。

代码

```cpp

#include <bits/stdc++.h>

using namespace std;

int main(){

string s;

cin >> s;

long long tt = 0;

for (long long i = s.size() - 1; i >= 0; i -- ){

long long t = s[i] - '0';

long long c = tt % 10;

long long cc;

if (c <= t){

cc = tt - c + t;

}

else{

cc = tt - c + 10 + t;

}

tt = cc;

}

cout << tt + s.size();

return 0;

}

```

相关推荐
疯狂的喵18 小时前
C++编译期多态实现
开发语言·c++·算法
scx2013100418 小时前
20260129LCA总结
算法·深度优先·图论
2301_7657031418 小时前
C++中的协程编程
开发语言·c++·算法
m0_7487080518 小时前
实时数据压缩库
开发语言·c++·算法
小魏每天都学习19 小时前
【算法——c/c++]
c语言·c++·算法
lly20240619 小时前
jQuery Mobile 表格
开发语言
智码未来学堂19 小时前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
惊讶的猫19 小时前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
Halo_tjn19 小时前
基于封装的专项 知识点
java·前端·python·算法
春日见20 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶