摘要:
斜率优化 斜率优化是指在一类 DP 问题中, 我们可以通过数学方法的转化, 将转移方程改写成一个只与转移方程中的某一可变状态有关的一次函数形式, 进而通过数学方法进行优化的动态规划. 经典例题: 任务安排 注意这里的三道题数据稍微不同于李书, 但 \(n\) 应该是相同的. 任务安排 $1$ 题目描 阅读全文
摘要:
换根DP 某些树形DP问题中, 我们要求的值是类似 "以当前节点为根节点得到的答案", 却没有给出固定的根节点, 若仍然按照常规的树形DP思路对每个点进行DP, 我们对每一个节点均进行一次 DFS , 最后的复杂度是 \(O\left(n^2\right)\) 如果我们先假设任意一个点为根进行 DP 阅读全文
摘要:
题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出 \(k\) 次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有 \(n\) 种,系统每次抛出这 \(n\) 种宝物的概率都相同且相互 阅读全文
摘要:
# include <iostream> # include <cstdio> # include <cstring> # define LL long long # define MAXN 22 using namespace std; int sum, a[MAXN]; // sum 记录各个位 阅读全文
摘要:
错排问题 直接上题解释吧 Luogu P1595 信封问题 题目描述 某人写了 \(n\) 封信和 \(n\) 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数 \(n\)(\(n \le 20\)) 输出格式 一个整数,代表有多少种情况。 首先, 我们 阅读全文
摘要:
分块: 优雅的暴力算法 分块这么名字, 听起来十分的高大上 并没有 , 但是实际 板子 理解起来不是很难. 对于一个需要维护某种区间上的信息的序列, 我们可以将其拆分为几个子区间, 也就是块 . 这样, 对于每一个块, 我们可以分别维护块中的某一个值, 在查询区间中的该值时, 只需要将区间落到块上, 阅读全文
该文被密码保护。 阅读全文