- 2023 NOI省选 Day1 Day2(云斗学院版数据)
人员调度(transfer)题解
- 2023-4-5 20:51:23 @
因为存在删除操作,对于这类模拟费用流问题不容易操作,考虑线段树分治变为只有插入的情况,但是会额外多出一个 的时间复杂度代价。
首先考虑静态的情况。考虑建立费用流模型,每次一定会选择最长路增广,发现所有有权值的边都是从原点出发的,这意味着一个员工如果被选中了,这在之后的增广中一定不会被丢弃。所以我们只需要每次考虑(按照价值从大到小)加入一个员工后,是否仍然存在完美匹配。此时可以套用 Hall 定理(只需观察每个子树内的已有员工数量,不超过子树大小即是合法的),维护 表示 这棵子树还能塞多少个点。每次插入前需要求出到根链上的最小值。
考虑插入的情况,此时不是按大小而是按照时间插入。插入后可能存在某个点 ,我们需要删除之前已经选择的某个员工。找到深度最大的 满足 ,删去 子树中价值最小的员工就能恢复所有 的条件。使用树链剖分 + 线段树优化,时间复杂度 。
再套上一层线段树分治就是三个 。内层如果替换为全局平衡二叉树可以减少一个 。
0 条评论
目前还没有评论...