当前位置: 首页 > news >正文

Removing Digits(Dynamic Programming)

题目描述

You are given an integer n. On each step, you may subtract one of the digits from the number.
How many steps are required to make the number equal to 0?

输入

The only input line has an integer n.
Constraints
1 ≤ n ≤ 10^6

输出

Print one integer: the minimum number of steps.

样例输入
27
样例输出
5
提示

An optimal solution is 27 → 20 → 18 → 10 → 9 → 0.

思路分析

0→0,dp[0]=0;

1→0,dp[1]=1;

2→0,dp[2]=1;

3→0,dp[3]=1;

……

9→0,dp[9]=1;

10→9→0,dp[10]=dp[9]+1=2;

11→10→9→0,dp[11]=dp[10]+1=3;

12→10→9→0,dp[12]=dp[10]+1=3;

或12→11→10→9→0,dp[12]=dp[11]+1=4;(舍)

13→10→9→0,dp[13]=dp[10]+1=3;

或13→12→10→9→0,dp[13]=dp[12]+1=4;(舍)

……

1.初始化dp数组,大小为n+1,dp[0]=0,1~n初始化为1,000,000,000。

2.循环处理,i从1到n,i的每一位数字d,更新dp[i]=min(dp[i],dp[i-d]+1)。

代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e9;
ll n;
int main(){cin>>n;vector<ll>dp(n+1,N);dp[0]=0;for(ll i=1;i<=n;i++){ll temp=i;while(temp){int d=temp%10;dp[i]=min(dp[i],dp[i-d]+1);temp/=10;}}cout<<dp[n];return 0;
}
http://www.lryc.cn/news/607925.html

相关文章:

  • 【第三章】变量也疯狂:深入剖析 Python 数据类型与内存原理
  • Android13文件管理USB音乐无专辑图片显示的是同目录其他图片
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势柱状图
  • 机器学习 —— 决策树
  • 从C++0基础到C++入门(第十五节:switch语句)
  • 计算机网络:为什么IPv6没有选择使用点分十进制
  • 如何修复非json数据
  • Gemini CLI
  • 深入 Go 底层原理(五):内存分配机制
  • 操作系统-lecture5(线程)
  • Vue3核心语法基础
  • 【大模型入门】3.从头实现GPT模型以生成文本
  • 相对路径 绝对路径
  • UniappDay07
  • sqli-labs:Less-19关卡详细解析
  • Qt 槽函数被执行多次,并且使用Qt::UniqueConnection无效【已解决】
  • 24黑马SpringCloud的Docker本地目录挂载出现相关问题解决
  • Tushare对接OpenBB分析A股与港股市场
  • 解锁智能油脂润滑系统:加速度与温振传感器选型协同攻略
  • 深度学习核心:卷积神经网络 - 原理、实现及在医学影像领域的应用
  • 【Java】在一个前台界面中动态展示多个数据表的字段及数据
  • 定制开发开源AI智能名片S2B2C商城小程序的特点、应用与发展研究
  • 自进化智能体综述:通往人工超级智能之路
  • SpringBoot IOC
  • C++之vector类的代码及其逻辑详解 (中)
  • 【自动化运维神器Ansible】YAML语法详解:Ansible Playbook的基石
  • vue引入阿里巴巴矢量图库的方式
  • Kotlin协程极简教程:5分钟学完关键知识点
  • docker desktop入门(docker桌面版)(提示wsl版本太低解决办法)
  • 【MySQL】增删改查操作 —— CRUD