uestc 250 windy数 【数位dp】
标签:c++ algorithm 二进制 dp 数位dp
题目:uestc 250 windy数
题意:
windy定义了一种windy数。
不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。
分析:首先定义dp【i】【j】:有 i 位最高位为 j 的出现次数。
首先通过暴力预处理出dp值来。
很明显其满足区间减法,通过求0---x的值通过区间减法求x---y 的。
那么假如我们要求0---257的,
首先求0---99,直接遍历0---9的然后10--90的依次求出。
然后求100--200的,直接遍历100--200求和即可
最后求200--257的,我们依次求2和相邻的5之间差值超过2的,求和,然后5和相邻7之间差值超过2的,加油相邻小于2的,直接不满足跳出
AC代码:
#include
#include
#include
#include
#include
评论