[ARC123C]1, 2, 3 - Decomposition
壹、题目描述 ¶
贰、题解 ¶
前言
只能说什么结论都想不到了,真的啊......至少打个表嘛,这样或许还能发现 这个结论......
正文
将用 组成的数成为好的。那么我们的题意就变成,对于一个 ,最少需要多少个好的数能够组成它。
◆ 好数之和的结构
我们将一个数 写成 ,那么,如果 是好的,它一定同时满足:
- ;
- 是一个好数或者 ;
所以,如果一个数能够被 个好数之和所表示,一定是以下两部分之和:
- 一个在 范围内的整数;
- 至多 个好数之和乘上 ;
然后,我们可以使用一个比较暴力的 来解决问题。
◆ 的设计
定义 表示 最少可以被多少好数之和所表示。
假设对于 ,我们已经知道了 的值,那么,我们可以设计下面的转移:
首先,暴力从小开始枚举一个 ,表示 能被多少好数所表示,那么我们这样转移:
- 枚举一个 ;
- 如果存在 满足 ,那么 即可表示为 个好数之和;
至于复杂度?似乎和 有关。但是 上界会是多少呢?
◆ 的上界以及时间复杂度
对于 的上界,我们可以使用归纳法证明:
- ,打表或者手玩.....;
- ,所以上界很容易发现是 ,这是最大情况了;
那么,复杂度就有了保障,我们不用做 ,直接暴力搜就可以了。
叁、关键之处 ¶
显然,题解分析是从 好数本身 再到 好数之和,有时候不要太冒进了,分析基础的东西才是关键。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-07-20 [CF1375E]Inversion SwapSort
2020-07-20 [CF912E]Prime Gift
2020-07-20 [CF1257F]Make Them Similar
2020-07-20 [CF632F]Magic Matrix
2020-07-20 [CF799E]Aquarium decoration
2020-07-20 [CF1327F]AND Segments
2020-07-20 [CF1059]Nature Reserve