大佬教程收集整理的这篇文章主要介绍了[ARC123C]1, 2, 3 - Decomposition,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
传送门 to Atcoder.
只能说什么结论都想不到了,真的啊......至少打个表嘛,这样或许还能发现 (forall i,f(i)le 5) 这个结论......
将用 (1,2,3) 组成的数成为好的。那么我们的题意就变成,对于一个 (N),最少需要多少个好的数能够组成它。
我们将一个数 (A_i) 写成 (A_i=10a_i+b_i),那么,如果 (A_i) 是好的,它一定同时满足:
所以,如果一个数能够被 (K) 个好数之和所表示,一定是以下两部分之和:
然后,我们可以使用一个比较暴力的 (rm DP) 来解决问题。
定义 (f(i)) 表示 (i) 最少可以被多少好数之和所表示。
假设对于 (N),我们已经知道了 (f(x)(x<N)) 的值,那么,我们可以设计下面的转移:
首先,暴力从小开始枚举一个 (K),表示 (N) 能被多少好数所表示,那么我们这样转移:
至于复杂度?似乎和 (K) 有关。但是 (K) 上界会是多少呢?
对于 (K) 的上界,我们可以使用归纳法证明:
那么,复杂度就有了保障,我们不用做 (rm DP),直接暴力搜就可以了。
显然,题解分析是从 好数本身 再到 好数之和,有时候不要太冒进了,分析基础的东西才是关键。
以上是大佬教程为你收集整理的[ARC123C]1, 2, 3 - Decomposition全部内容,希望文章能够帮你解决[ARC123C]1, 2, 3 - Decomposition所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。