蓝桥杯算法提高 -- 周期字串

本文介绍了如何利用约数树优化解决蓝桥杯中的周期字符串检验问题。通过构建约数树,实现对不同长度周期字符串的高效检验策略,避免重复判断,降低算法复杂度。文章以24为例,展示约数树的构造,并指出这种方法虽然可能增加额外的时间开销,但能显著减少原复杂度系数。
摘要由CSDN通过智能技术生成

思路:

相信大家都很容易想到, 根据字符串的长度, 求出所有约数, 然后按照约数的顺序来检验 . 但是检验的策略非常重要, 最重要的两点就是: 

(1)对每个不同长度周期的字符串, 最多只判断一次. 

(2)如果长度为N的字符串在原串的周期检验中不成立, 则长度为N的约数的字符串也不会成立 .


根据上述的结论, 我们可以大概感觉到, 我们不仅要求约数, 还要求约数的约数( 依次递归 ) , 而约数的约数本身又是原数的约数 , 至此, 可以断定使用多叉数结构(有向图)来进行约数存储( 我把它称为约数树 ). 


完全约数树: 如果根结点的所有约数都是根结点的下属结点(无论直接或间接), 则该树为完全约数树.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值