0-1背包问题、最大连续子数组问题、最长公共子序列、最长公共子串、最小编辑距离、钢条切割、矩阵链乘 动态规划问题的一般步骤: 给出问题的表示,明确子问题 分析最优结构,构造递推公式 确定计算顺序,依次求解问题 记录决策过程,输出最优方案 0-1背包 动规方程: 用$p[i,c]$表示前i个物品在背包 ...
分类:
编程语言 时间:
2020-12-31 12:05:20
阅读次数:
0
一、递归的思路 一个方法在执行时,调用自身被称为“递归”。 递归相当于数学归纳法,有一个起始条件,有一个递推公式。 递归可以分为:单路递归和多路递归(如二叉树和斐波那契数列)。 二、代码举例 1、n的阶乘 //n的阶乘 public static int fac(int num){ if(num = ...
分类:
编程语言 时间:
2020-12-14 12:48:02
阅读次数:
4
间隙 大致题意 给定一棵$n$个点的带权树,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或 $1≤n≤100000$ 分析 01trie模板 设$f_i$表示从根节点到$i$节点的异或路径,有显然的递推公式:\(f_v = f_{fa}⊕edge.w\) 根据异或的性质, ...
分类:
其他好文 时间:
2020-11-01 10:21:19
阅读次数:
16
题目 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 数据规模与约定 1 ? n ? 1,000,000。 正确答案 #include <iostream> using namespac ...
分类:
编程语言 时间:
2020-07-12 00:28:03
阅读次数:
82
前言 在排序那一节里,讲到排序时,利用递推公式推导时间复杂度来求解归并排序、快速排序的时间复杂度,但有些情况,例如快速排序的平均时间复杂度,利用递推公式,会涉及很复杂的数据推导。今天学习一种特殊的树来分析递归算法的时间复杂度,那就是递归树。 递归树与时间复杂度 递归算法的思路是把大问题分成小问题来解 ...
分类:
编程语言 时间:
2020-07-10 10:10:47
阅读次数:
73
错排问题 直接上题解释吧 Luogu P1595 信封问题 题目描述 某人写了 \(n\) 封信和 \(n\) 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数 \(n\)(\(n \le 20\)) 输出格式 一个整数,代表有多少种情况。 首先, 我们 ...
分类:
其他好文 时间:
2020-07-08 23:06:27
阅读次数:
77
由于每次只能跳一阶或者两阶台阶,所以要到达每一阶台阶的方案数都是到达上一阶台阶的方案数 和到达上上阶台阶的方案数之和。 如果我们用dp[i]表示到达第i阶台阶的方案数,那么可以得到递推公式dp[i] = dp[i - 1] + dp[i - 2]; 这就是一个斐波那契数列,递推边界是dp[0] = ...
分类:
其他好文 时间:
2020-07-02 16:33:12
阅读次数:
47
有幸打上了wls的举办的第一场比赛 知道一定是矩阵快速幂加速dp,但是递推公式一下子有点难弄 看了题解后才发现可以将这些六边形平放,平放之后很容易发现从第i个到第i+1的关键点是1,2: 因为第i+1个六边形所有点的所有方向的状态,都是由第i个六边形1或2的方向推出的 所以我们只要dp第i个六边形点 ...
分类:
其他好文 时间:
2020-06-16 21:55:22
阅读次数:
77
简介 斐波那契数列是指的这样的一个数列,从第3项开始,以后每一项都等于前两项之和。写成递推公式即: \(a_n=a_{n-1}+a_{n-2}(n \ge 3)\) 假设令$a_1=1,a_2=1$,则斐波那契数列指的是这样的一串数:\({1,1,2,3,5,8,13,21,34,55,89,... ...
分类:
其他好文 时间:
2020-05-29 21:31:11
阅读次数:
83
"luogu" 考虑组合数递推公式$\binom{n}{m}=\binom{n 1}{m}+\binom{n 1}{m 1}$,然后代入原式,有 $\sum_{i=0}^{\infty} \binom{nk}{ik+r}=\sum_{i=0}^{\infty} \binom{nk 1}{ik+r}+ ...
分类:
其他好文 时间:
2020-05-20 22:51:07
阅读次数:
85