Loading

摘要: 最开始想到 有源汇有上下界最小费用最大流 去了 /qd 这一类问题的经典做法就是,将 \(x,y\) 看成点,将点看成边,然后多半是网络流问题。 考虑令 \(r\leq b\),这样我们的目标变成了尽可能地使 \(r\) 更大。考虑建图,源点连 \(x\),\(y\) 连汇点,带上下界表示至少需要选 阅读全文
posted @ 2021-09-23 21:48 Qiuly 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 注意到深度限制相当于白给一条链,剩下随便乱选,这样就能忽略深度限制。接下来,选取的这条链将整个树分成了两部分,考虑对这两部分求解,然后合并。 树上的一类带依赖的背包问题的常见套路就是,将树的后序遍历撤下来,令 \(f_{i,j}\) 表示后序遍历第 \(i\) 个,选了 \(j\) 个,转移分两种: 阅读全文
posted @ 2021-09-23 17:25 Qiuly 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 将每条边看作一个一个入点,一个出点,入点向出点连长度为原边权的边。那么对于原来的点相关的边形成的新图的点将互相连边,边权为 trie 树上 lca 的深度,直接连的话是 \(O(m^2)\) 的,无法通过。 接下来的任务就是这个 trie 树上怎么优化连边,这不禁让我们想到虚树。关于虚树,一个简单有 阅读全文
posted @ 2021-09-23 17:05 Qiuly 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 意思就是将每棵树树剖成若干条链,然后将链组合在一起的方案数。 枚举一种方案 \(\{b_1,b_2,\cdots,b_m\}\) 表示最终每个树剖出来的链的个数,然后组合方案数的计算是经典容斥。因为同一棵树中的链不能放在相邻的位置,不需要考虑本就不在考虑范围之内的 "同一棵树中的两条链在最终方案中拼 阅读全文
posted @ 2021-09-23 16:56 Qiuly 阅读(78) 评论(0) 推荐(0) 编辑