题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4352
题目意思:
求区间L到R之间的数A满足A的的数位的最长递增序列的长度为K的数的个数。
解题思路:
数位dp+LIS+状态压缩
根据求LIS的nlogn的思想,由于k最多为10,也就是最长递增序列的长度最多为10,可以状态压缩10位,维护前面的已选的递增序列,并及时更新。
dp[i][j][k]表示后面还有i位,前面状态为k,总共需要最长递增序列为j时的总数。
代码:
更新时用两种方式实现都可以。
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib

该博客主要介绍了如何利用数位动态规划(DP)结合最长递增子序列(LIS)的方法解决HDU 4352题目。博主探讨了当要求区间L到R之间数的数位构成的最长递增序列长度为K的数的个数时,如何通过状态压缩来优化算法,将状态压缩为10位,并详细阐述了dp状态转移方程的设置及实现策略。
最低0.47元/天 解锁文章
9253

被折叠的 条评论
为什么被折叠?



