摘要:
按照困难度升序排序Kruskal重构树这样一来一个点的子树中的所有困难值都小于改点的困难值对于每次询问倍增找出困难值最大且小于x的点该点的子树中的第k大就是询问的答案主席书维护区间k大 阅读全文
摘要:
kruskal 重构树对于一张无向图,我们在进行 kruskal 的过程中每当合并两个联通块时新建虚拟节点 t对于两个联通块的根节点 fau,fav 连无向边(fau, t),(fav, t) 其中点 t 的点权为两个联通块当前连边的边权对于这道题首先 dijkstra 处理所有点到1号点的最短路 阅读全文
摘要:
T1给定一个 $n$ 位的数字串,要求修改若干位,使得至少包含 $k$ 个相同的数位,最小化代价。 Sol 考虑枚举那种数字作为答案,选代价前 $k$ 小的修改成目标数字。 有一部分的数字是必须修改的,另一部分要从中选若干个,这时选左边变小的 和右边变大的。T2给定数列,选出两个等差数列,数字的先后 阅读全文
摘要:
给出 $n * 1$ 的矩阵,选出 $k$ 个互不重叠的子矩阵,使得其最大$sum[i]$ 为列的前缀和设 $f[i][j]$ 表示前 $i$ 个数选出 $j$ 个互不重叠的子矩阵的最大价值若第 $i$ 个数不属于第 $j$ 个矩阵 $f[i][j] = f[i - 1][j]$否则枚举第 $j$ 阅读全文
摘要:
Tarjan 缩点 拓扑排序 套路题 阅读全文
摘要:
考虑树上的每条边对答案的贡献 x y 若 x 左边有 a2 个点,y 的右边有 a3 个点那么改边对答案的贡献为 C(n, k) - C(a2, k) - C(a3, k)快速幂求逆元计算组合数 注意:计算C(n, m)时, 若 m > n 返回 0 阅读全文
摘要:
Tarjan + TopsortTarjan 缩点Topsort 判断 Topsort 判断:在DAG中若初始状态下存在多于1个入度为0的点则说明这些 入度为0的点之间不会有路径可达若不存在入度为0的点,则状态为Yes 若只存在1个入度为0的点,将该点指出的边删除继续上述判断 阅读全文
摘要:
对于某一大小的连通子图包含的黑点的数目的最大值和最小值都能取到考虑树形dp$f[i][j]$ 表示从 $i$ 的子树中选出大小为 $j$ 的联通子图黑点数目的最小值$g[i][j]$ 表示从 $i$ 的子树中选出大小为 $j$ 的联通子图黑点数目的最大值树形dp转移 阅读全文
摘要:
对于软件的依赖可以转化为图上点之间的边的关系发现对于一个强联通分量内的软件,一安则全安Tarjan缩点缩点后,从虚拟节点 0 向所有入度为 0 的点连边这样就构成了一棵树树形 dp$dp[i][j]$ 表示对 $i$ 及其子树话费 $j$ 的价格所得到的收益$dp[i][j] = dp[k][l] 阅读全文