HDU 4352 XHXJ's LIS HDU(数位DP)

时间:2022-12-05 15:12:01

HDU 4352 XHXJ's LIS HDU

题目大意

给你L到R区间,和一个数字K,然后让你求L到R区间之内满足最长上升子序列长度为K的数字有多少个

solution

简洁明了的题意总是让人无从下手

数字——数位DP

根据题意定义数组

第一维:数位

第二维:数位状态01串

第三维:个数K的大小

说说心路历程:

写的时候没有注意到前导零的可能型(通过看大佬的blog发现的

问题就是如何进行状态转移(手动@LC参考了LC的题解

我们用一个长度为10的二进制数表示数字几有没有被选到

如果为0,则表明该位对应的数字是最长上升子序列的一部分,反之则不是

每次遍历时,如果新加入的数是最大的,我们就直接把该数代表的位置置为1就可以

如果新加入的数不是最大的,我们就把第一个小于等于该位的数置为0,把新加入的位数置为1

统计长度时只要看有几个1就可以了

题解看懂了,code未完成