☰
11.3【A】
2026/11/5 2:00:24 网站建设 项目流程

3736

这个就是单纯的找到最大值,然后减去所有其他值了

红魔馆的馆主

因为是要直接在结尾加数字,所以最多也就加18次

每个位置上是0-9,10种可能,直接dfs暴力搜索,是18^10的复杂度,应该是满足条件的

再加上剪枝,

首先想到的剪枝是最后一位,只能填0或5,剪掉其他8种可能

每个数构造完成后,就要验证是否为495的倍数

复杂度应该还是很高

应该有数学方法

自解

对于搜索,

dfs,

看当前长度是否超过了18,如果是就return

否则,从0遍历到9

如果是0或5,就校验一次,如果校验过了,那就直接return掉

并最后输出string.substr

DEBUG1

就是说最大深度来作为参数限制,

疑问1——重复搜索代价?

不过这样会不会有效率上的问题?即最大深度为1时,如果发现没结果,那么到最大深度为2,需要再次从0层开始找,即又过了一遍第一层,如果最大深度为n,那么第一层最坏情况下会过n次,整体最坏会多过n(n-1)/2层?

DEBUG1.1

关键BUG

、

DE完后

AI版

AI解

疑问1

为什么495<1000就一定能构造出答案?这是什么原理?

或者简明直接一些,对于任意一个数n,要求加x来得到最近的关于y的余数,那么x必定在0到y之间

如果是直接往数位里添加的话,如果y的位数为a的话,那么在a+1位以内就可以;

疑问1.2

但依然存在问题,N=n×1000+s,添加的数是s,s是495的倍数,但加上n*1000后,又如何能保证这个和是495的倍数?

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询