题解:CF2203B Beautiful Numbers
CF2203B Beautiful Numbers 思路 首先满足 $F(x)=F(F(x))$ 的数所有数位之和一定 $<10$。 我们设 $dp_{i,j}$ 表示处理完前 $i$ 位数字,各位和为 $j$ 时的最少修改次数。 初始设为一个极大值表示不可达。 枚举最后的总数位和 $1$ 到 $9$。 遍历每一位数字 $i$。 遍历总数位和 $j$。 枚举当前位要修改成什么数 $k$。 如果当前要修改成的数字 $k$ 不等于原数字,则修改次数增加。 核心转移方程为 $dp_{i+1,j+k}=\min(dp_{i+1,j+k},dp_{i,j}+(k\neq d));$ 最后再看是否存在可达的状态即可,更新答案为这些最终数位和对应的最小值。 代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include<bits/stdc++.h>#define fir...