怎么让微信步数保持不变35,后来5个小时后变成8000多,什么原因

    如果一个数x的约数和(不包括它夲身下同)比它本身小,那么x可以变成它的约数和;如果对于某个y>xy的约数和为x那么x也可以变成y。例如4可以变为31可以变为7限定所有的数字变换在不超过n的正整数范围内进行,求不断进行数字变换且没有重复数字出现的最多变换步数

输出数据    输出最少需要花费的時间。  (这里原题应该打错了应该是输出最大转换步数)

如果x和y可以互相转化,就连接一条无向边最后得到的图其实是一个森林,每棵树都是无根树其实就是要求,整个森林中两个连通的点的最远距离(这里边权都是1)和在无根树中求两点最远距离是一样的,不过這题的特殊性可以更方便点

对于任意一条边,必有x<y在树中,x就应该为y的双亲(因为y的约数和是唯一的但x可能是很多个数的约数和,這正好对应树的关系双亲唯一,孩子不定)而dp思想照样是找出每个节点到叶子的最大值m1和次大值m2,再两者相加的dp[rt]而整个树中的最大徝,就是扫描全部节点找到最大的dp[rt]

由于这题,每个节点的双亲是可以记录下来的所以dp的时候不用递归,而写成递推式直接从叶往上遞推,为什么不能从根往下递推呢这很容易理解,想想我们是怎么计算m1和m2的

还有一个重要的时候就是怎么找出约数和数据比较大,应該尽量避免多余的判断用筛法求约数和则是一个不错的方法

}

我要回帖

更多关于 怎么让微信步数保持不变 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信