左神第七讲-代码C++实现(后四道题)

xiaoxiao2021-02-27  168

声明:博主是在看了左神讲解之后写的代码,主要目的是为了自己复习巩固,同时将左神的辛苦汗水和宝贵思路发扬出去,哇哈哈哈哈哈。

明天再写喽

1、小易喜欢的数列(网易2018内推题)  

小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A <= B)或(A mod B != 0)(满足其一即可) 例如,当n = 4, k = 7 那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的 但是小易不喜欢{4,4,4,2}这个数列。小易给出n和k,希望你能帮他求出有多少个是他会喜欢的数列。 

输入描述:
输入包括两个整数n和k(1 ≤ n ≤ 10, 1 ≤ k ≤ 10^5)
输出描述:
输出一个整数,即满足要求的数列个数,因为答案可能很大,输出对1,000,000,007取模的结果。
输入例子1:
2 2
输出例子1:
3

这是属于一大类题目:

(1)先写出递归程序,这一步是最难的,需要将问题抽象成一个子问题,想象程序是按照某个步骤重复的递归实现的。暴力递归的训练需要大量的刷题。(重重之重)

(2)在递归函数中,有的参数是不变量,有的参数是变的,变的参数可以设置成动态规划的某一维,寻找传入参数与递归式的位置依赖关系,写出动态规划版本。

首先找到边界条件或者初始条件(不依赖其他位置),然后寻找普通情况下的依赖关系,动态规划可能是依赖几项,或者某一排,或者别的,选择较好的方式循环操作。

(3)笔试时,内存超限,考虑动态规划压缩,这里需要注意新旧值覆盖问题,选择的某一列数组,要有合适的循环顺序,先更改不被依赖的位置的值(比如leetcode杨辉三角),还有啥四边形不等式(冷门),我并不知道咋做。

2 地主分金条

转载请注明原文地址: https://www.6miu.com/read-17174.html

最新回复(0)