以为是数位dp,想了很久,最后发现贪心好巧妙
但其实数位dp也能做,只是写起来比较麻烦,(而且我看错题了/kk)
首先naive的做法是很好想的,即枚举在\(l\)和\(r\)之间的数,直接判断
怎么判断呢?无疑是在\(s\)中找到第一个下标\(>i\)的这个数的位置,然后让\(i\)赋值为这个位置,一直重复
于是我们可以预处理出每个位置\(i\)后缀走\(0-9\)的编号最小的位置
我们发现一个什么问题?编号越大的点很明显出现的数越少
所以我们只需要每次走编号最大的点即可
预处理\(pos\)的复杂度为\(O(10n)\),计算的复杂度是\(O(10m)\)
总复杂度\(O(10n + 10m)\)
标签:10n,10m,复杂度,CF1845C,编号,dp From: https://www.cnblogs.com/fox-konata/p/17636854.html