题解: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;

}

```

相关推荐
倔强的小石头_1 小时前
【C语言指南】函数指针深度解析
java·c语言·算法
Yasin Chen1 小时前
C# Dictionary源码分析
算法·unity·哈希算法
_Coin_-2 小时前
算法训练营DAY27 第八章 贪心算法 part01
算法·贪心算法
iCxhust6 小时前
c# U盘映像生成工具
开发语言·单片机·c#
yangzhi_emo6 小时前
ES6笔记2
开发语言·前端·javascript
董董灿是个攻城狮7 小时前
5分钟搞懂什么是窗口注意力?
算法
Dann Hiroaki7 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
emplace_back7 小时前
C# 集合表达式和展开运算符 (..) 详解
开发语言·windows·c#
jz_ddk7 小时前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
萧曵 丶8 小时前
Rust 所有权系统:深入浅出指南
开发语言·后端·rust