摘要:
这题要求不含前导零,所以我们要对有前导0的数,进行枚举一遍 前两题之所以可以用含前导零的来直接做,是因为不影响答案,比如度的数量,第一位选0没有问题 又比如不降数问题,即使有前导0,也不影响答案,所以可以不处理 但是对于windy数,会影响答案,比如一个数0135,按道理是135是符合答案的,但是加 阅读全文
摘要:
同样的套路,这题求的是不降数,只需要在预处理的时候处理一下就行 #include<iostream> #include<vector> using namespace std; const int N=17; int f[N][N]; int n,m; void init(){ int i,j; f 阅读全文
摘要:
对于数位dp的题目,我学习的是y总的模板,也就是说把所有数先用拆位后考虑从头开始考虑,形成一个树的形状 左分支为填0-ai-1的情况,这列情况一般可以通过数学公式一次性求出,之后右分支就填当前数,这样向下延申,在最后特判右分支的情况,也就是一个数 对于数位dp,一般存储两个量,一个是个数,一个是la 阅读全文
摘要:
这道题首先我们要发现的一个性质是,不过从是从后面取上来,还是从前面放到后面,当我们把想要的数字输出之后,序列是不变的,不信可以试试 这个是关键点,因此,我们只要考虑哪种情况小就取哪种情况就行了,不用考虑顺序问题。 之后还有一个问题是,如果快速求取花费值,我们进一步发现,这里的求值,永远是一段一段求的 阅读全文
摘要:
这是经典的谷歌面试题,也是经典的动态规划问题 根据y总的说法,动态规划问题要划分集合,表示状态 对于这道题,有两个经典的解法,他们的复杂度不同,因为对状态的定义略有不同 1.最常规的思想,设计状态为前i层用j个鸡蛋所能测的最坏情况的最小值是多少 我相信集合的定义很多人能想到,但是状态的定义还需要进行 阅读全文