www 被大佬们吊打了,尤其是zac2010>.<|

wscqwq

园龄:2年粉丝:2关注:3

substr=S

[ABC295F] substr = S

看到题可能想到数位 DP,但其实就是一个暴力而已。

首先区间当然用前缀和作差的形式。

枚举匹配给定串的,位置然后发现这个位置把整个数截成了三段。

考虑匹配位置和给定串之间的关系。

情况1:

image-20230629192029545

如图,匹配的数大于给定的数,此时前面可以取 023,后面可以取 0999,共 24×1000

情况2:

image-20230629192145610

此时,当前面取 022 时后面可取 0999,但是当为 23 时后面只能取 0678

情况3:

image-20230629192254704

此时,前面可以取 022,此时 23 不能取,后面可取 099

根据上述分析思路就出来了,枚举每个位置,然后根据大小关系进行计算。复杂度极低,可以预处理数字,也可以直接每次截取三段子串,反正复杂度很低,怎么实现都飞快。

代码

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17515040.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起