CF 478E - Wavy numbers(TODO)

题目链接:Click here~~

题意:

定义一 wavy number,规则是除了首位和末位,每位的数字严格大于或小于两边的相邻数字,然后给出 k,n,问 n 的倍数中第 k 小的 wavy number 是谁。

规定合法解的范围为 [1,10^14]。

思路:

虽然题目拐了很多弯,但逐步分析还是发现可以做的。第一直觉是什么?数位DP?没错,跟着感觉走~~~

【子结构】首先对于一个合法解,从两边去掉这个数字的若干位会发现它依然是合法的。【子结构】

【状态确定与转移】当尝试从低位到高位构造合法的解时,会发当前新添数字的选择仅与已构造好的那些数字的最高位 以及 次高位与最高位的大小关系 有关。

(对于已有合法解 321,向高位添加一个数字 x,使 x321 依然合法, 此时限制取决于 "3" 以及 "2" < “3” 的关系,即 x 也要小于 3,即 可选集合为 {1,2}。

有了子结构和状态转移,就比较好 dp 了吧。


你可能感兴趣的:(CF 478E - Wavy numbers(TODO))