专栏文章
Solution-CF2109C3
CF2109C3题解参与者 2已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mip6ajsd
- 此快照首次捕获于
- 2025/12/03 06:51 3 个月前
- 此快照最后确认于
- 2025/12/03 06:51 3 个月前
有大神拿这题做儿童节游园会小游戏,所以写篇题解。
既然 C2 要求是 次,那么我们可以先尝试 次操作,再尝试 次操作( 次操作显然不可行)。
考虑 C2 有哪次操作可以不用,显然最后 次操作优化不掉,那就只能优化前 次操作,我们希望第 次操作乘上某个数后,只用 次
digit 就可以得到一个确定的数。我们乘法最大可以乘 ,不妨尝试一下 的倍数,发现没有结论。然后尝试一下 个 组成的数,即 。可以发现:
令 ,那么 。
于是 。
于是现在我们找到了 次操作的做法。对于 可以略去最后 次操作,只需要 次操作。那么有没有什么其他的 是只需要 次操作就可以得到的呢?
假设存在 使得 ,取 ,由上面的结论可以知道 。而我们再取 ,,只有取 才能使 。于是我们证明了只有 是只需要 次操作就可以得到的。
最终答案:
CPPif(n==81){
cout<<"mul 999999999\n";
cout<<"digit\n";
}
else{
cout<<"mul 999999999\n";
cout<<"digit\n";
cout<<"add"<<n-81<<"\n";
}
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...