「省选联考 2023」人员调度

离独立想出正解只差一步了。

我的做法是使用网络流武器,抛弃了贪心的思考。虽然没有锻炼到贪心能力,但是加深了对网络流的理解吧。

考虑撤销可以用线段树分治,故只考虑加入的情况。我们发现这个模型很像费用流,于是考虑建模。

  • 源点向所有员工连边,容量为 \(1\),费用为其能力值。

  • 所有员工向其初始所在节点连边,容量为无穷,费用为 \(0\)

  • 每个点向其儿子(如果有)连边,容量为无穷,费用为 \(0\)

  • 每个点向汇点连边,容量为 \(1\),费用为 \(0\)

然后跑最大费用流。

我们考察到加入一个员工时,只需要往这个员工的方向增广一条路径。此时这条路径要么是源点到汇点的一条路径,要么是从源点出发,又回到源点的一条回路。那么情况就清晰起来了:

对于第一类路径,就是找到一个能到的点(注意这个点指的是能通过走没流满的边能到达的点,下同),并且这个点向汇点的边没满流(这个点没被占用),就向其增广。

对于第二类路径(也就是不存在第一类路径),也是找到一个能到的点,并且往上走向这个位置所包含的某个员工,然后回到源点,结束,也就是顶替掉它。可以发现这个员工一定是以该点为起始点的现存员工中能力值最小的。

然后把树上的边增广(正向流量 \(+1\),反向流量 \(-1\)),再维护一下每个树上点是否被占用,并用 multiset 之类的东西维护现存员工。

找能到达的点的时候,就可以先一直跳祖先,直到它和父亲的边没有流量。然后在跳到的这个位置的所有子树内选择。树上的这些路径操作都可以树剖简单维护。选择的这个点就是子树查询到每个点能够产生的贡献的最小值,答案加上新员工能力值减去这个最小值即可。这个用一个线段树即可。

再套上线段树分治,时间复杂度 \(\mathcal O(n\log^3n)\),空间复杂度 \(\mathcal O(n\log n)\)。当然如果用全局平衡就可以把时间复杂度降成 \(\mathcal O(n\log^2n)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工具大全-dirsearch探测Web目录

目录扫描工具dirsearch非常详细使用方法dirsearch介绍dirsearch是一款开源的、基于Python开发的命令行工具,主要用于对Web服务器进行目录和文件的扫描,以发现潜在的安全漏洞。 dirsearch下载地址: https://github.com/maurosoria/dirsearch 运行环境:必须安装python3为什么…

Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品

随着技术的成熟和 AI 的崛起,很多原本需要团队协作才能完成的工作现在都可以通过自动化和智能化的方式完成。于是乎,单个开发者的能力得到了极大的提升 - 借助各种工具,一个人就可以完成开发、测试、运维等整条链路上的工作,渡劫飞升成为真正的 “全干工程师”。 之前我们分…

【详解】低功耗低成本的Open开发方案

Open开发应用需求,有没有低功耗、低成本方案? 今天我们一起来聊聊Air780EP模组。 一、Air780EP核心信息描述 运营商支持: Air780EP模组面向国内的全网通模组,支持移动、电信、联通三大运营商。 仅比Air700E系列相对大一些: Air700ECQ/Air700EAQ/Air700EMQ; 与Air780E系列…

01现代计算机视觉入门之:什么是图片

## 系列文章目录 ## 01现代计算机视觉入门之:什么是图片(6700字/25图) 02现代计算机视觉入门之:什么是视频 03现代计算机视觉入门之:什么是图片特征编码 04现代计算机视觉入门之:什么是图片分类 05现代计算机视觉入门之:什么是目标检测 06现代计算机视觉入门之:什么是图…

微信小程序中supabase在线数据库使用指南

在微信小程序中使用supabase在线数据库可以无需后端和服务器完成个人小项目的开发。本文记录我的使用过程,在阅读本文前,建议您先满足以下条件:持有可用于开发的微信小程序 了解kexue上网第一步 注册与简单使用 首先,我们到https://supabase.com/注册一个账户,并创建一个您…

USB上网快速入门:RNDIS网卡,手把手教你!

本文将带你使用RNDIS的方式,搭配Linux主控终端,快速实现USB上网。 RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡,从而使Linux可以通过USB设备连接网络。 一、Linux驱动配置 1. 虚拟串口 通过串口…

2024.12.26 os lab3

2024.12.26 os lab3 原代码 地址:https://github.com/BUPT-OS/easy_lab/tree/lab3 运行未修改的代码,并且注释掉cout时发生错误: malloc(): corrupted top size如果不注释cout,可以正常运行1.不注释 cout 时堆内存的详细分析 1. 程序启动阶段在程序启动时,堆的初始状态为空…

编译型语言的痛!但无文件落地我可以!!!

再不进来看,哭了我就不管你了!!!声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。 @目录python 等脚本语言示例演示golang 等静态编译型语言内存文件系统memfd_create 使用…

WPF TabControl 去掉鼠标悬浮效果

1.资源<Window.Resources><Style x:Key="TabStyle" TargetType="TabItem"><Setter Property="TextBlock.FontSize" Value="12" /><Setter Property="Template"><Setter.Value><ControlTem…

Clion创建项目sqlite数据库

1.创建工程并运行 (1)新建——project,选择工程文件夹,创建工程(2)进入界面,等待项目启动,显示main.cpp主文件(3)配置编译环境默认生成了main.cpp文件,但是我们不能运行。我们缺少编译环境,点击Setting打开设置,搜索工具链,发现Clion提供的编译环境有几种MinGW,Cy…

营销相关笔记2:电力营销的业务办理和计量计费

电力营销的业务办理和计量计费 转:电力知识图谱:电力营销(下) - 知乎 一.业务办理 电力营销是和客户打交道的最前线,两大业务:一是市场销售,二是客户需求受理和交付,即业务办理。在一些市场化主导的售电公司里,市场部和营销部可能会分开。但在电网公司,都是统一的营销…

FMC子卡设计原理图:FMC209-基于FMC的4路125MAD输入、2路1GDA输出子卡 中低频信号采集

一、板卡概述本子卡基于FMC连接器实现4路125M采样率AD输出,两路1G采样率DA输出子卡,板卡默认由FMC连接器+12V供电,支持外参考时钟,外输入时钟,外触发。 二、性能指标三、应用领域 中低频信号采集