![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划 数位dp
_pkm_
love coding
展开
-
HDU 4352 XHXJ's LIS(状态压缩+数位dp)
题目链接 求区间里面的数,满足数位上的数是严格的长度为k的上升子序列的个数上升子序列使用nlogn的计算方式,因为是严格的上升子序列,所以只会有0-9,10个数字。在某一个上升的子序列中,每个数字只会出现一次,使用f[i][s]:表示将数字i加入状态s可以到达的新的状态s’,这个f函数,可以直接暴力预处理,然后就是裸的数位dp了#include<cstdio> #include<algorithm原创 2016-09-22 13:45:54 · 280 阅读 · 0 评论 -
Codeforces Beta Round #51 D. Beautiful numbers(数位dp)
题目链接问区间[L,R] 之间有多少个数满足,这个数能够整除这个数的每一个数位,比如36可以整除3和6,所以是符合要求的数字。直接看来,一个数每一位还没有确定的时候,就无法知道这个数能不能整除自己的每一位。假如这个数是可以整除自己的每一位,也就是说这个数是自己每一位的公倍数,比如一个满足的数X组成是abc的形式,那么X是a的倍数,b的倍数,c的倍数,也就是X%lcm(a,b,c)==0。然后1-9的原创 2016-09-22 10:36:44 · 282 阅读 · 0 评论 -
HDU 5898 odd-even number(数位dp)
题目链接题意就是,数位是奇数的连续的长度是偶数,数位是偶数的连续的长度是奇数,比如 2,4,6, 8,11,13,15,17。。直接数位dp, 加一个z标识,是不是前缀都是0。 dp[i][s][len]:第i位是奇数还是偶数,以及连续的长度。#include <bits/stdc++.h> #define LL long long using namespace std; #define cl(原创 2016-09-21 15:08:46 · 322 阅读 · 0 评论