摘要:
题意: 有 n 群怨灵排成一排,燐每秒钟会选择一段区间,消灭至多 k 只怨灵。 如果怨灵数量不足 k,则会消灭尽量多的怨灵。 燐作为一只有特点的猫,它选择的区间是不会相互包含的。它想要知道它每秒最多能消灭多少怨灵。 要求:在之前每次都消灭尽量多的怨灵的情况下,求第 i 秒最多能消灭的怨灵的数量。 首 阅读全文
摘要:
题目大意: 求 答案对$10^9 + 7$取模。 首先,我们发现 这个东西出现了很多次。 设R= 。 R可以矩阵乘法求。 根据斯特林数的 原式可化为 设所求为$f_k(N)$。 对于$R=1$的情况,自然数幂求和即可。$O(k+logn)$。 所以, 由上述暴力展开的情况可以发现,存在一个关于$N$ 阅读全文
摘要:
题意: 对于一个给定的长度为n的字符串,求出它的第k小子串。 有参数t,t为0则表示不同位置的相同子串算作一个,t为1则表示不同位置的相同子串算作多个。 题解: 首先,因为t的原因,后缀数组较难实现,这里不讨论。 使用后缀自动机: 因为,这里需要按字典序考虑子串,所以要使用trs指针。 首先,计算出 阅读全文
摘要:
[toc] 首先,要求可以离线 。 线段树分治有两种。 类型一 操作基于区间,单点询问。 有时,进行的一种操作可以快速完成,但是,要实现这种操作的逆操作较难。 因为,通常情况下,需要实现的逆操作都是很久以前执行的。 但是,如果只撤销上次操作,就会简单得多。 比如,维护一些连通性,或直径,线性基等问题 阅读全文
摘要:
概念 树形背包,就是说,在树上选一个包含根的连通块,或背包存在依赖关系(选父才能选子),或者需要知道每个点的子树中选了多少…… 通常,我们有两种方法: 一、基于dfs合并: 我们设$dp(i,j)$表示在i的子节点中选j个的状态。 在转移时,先dfs子节点,然后依次把子节点合并,每次合并2个。 即枚 阅读全文
摘要:
首先,观察题意,可以发现在最长链下再接一个点,结果一定更优。 也就是说,可以免费选一条最长链,之后正常选。 我们枚举选的最长链,然后算出剩下部分的最优解。 有4部分: 1、链上每个点都选一个。 2、链上剩下的部分。 3、链的左面。 4、链的右面。 1可以直接计算。 那么,我们需要先进行树形背包,然后 阅读全文
摘要:
题意: 有两个长度为n的序列,要求从每个序列中选k个,并且满足至少有l个位置都被选,问总和最大是多少。 $1\leq l\leq k\leq n\leq 2 10^5$。 首先,记录当前考虑到的位置i,第一个选的数量a, 第二个选的数量b,都被选的数量c,可以做到$O(n^4)$, 卡常后能过$n\ 阅读全文
摘要:
行列式:gauss消元求。 余子式:去掉一行一列后,剩下的矩阵的行列式组成的矩阵。 代数余子式:余子式根据行列的奇偶性取相反数后的矩阵。 行列式等于任意一行(列)的各个位置乘以代数余子式之和。 代数余子式的转置叫伴随矩阵。 伴随矩阵等于逆矩阵乘以行列式。 所以,一遍行列式,一遍逆矩阵,就能知道代数余 阅读全文