当前位置: 首页 > news >正文

题解:qoj10322 Matching Query

官方题解搬运工。

题意:给你一个环,长度为 \(M\),点有容量 \(C_i\),要求出这个环的最大匹配,同时会有 \(q\) 次询问,每次询问修改一个 \(C_i\),求最大匹配。

做法:

首先我们记 \(B_i = \min(C_i+1,C_i)\),这里 \(C_{0} = C_{M}\),那么我们重新刻画这个问题为找一组 \(x\),代表第 \(i,i+1\) 个点之间的边的匹配量,有的限制是:

\[x_i\le B_i,x_i+x_{i+1}\le C_i \]

其实你会发现后者的限制其实比较多余,但是这跟我们后面的做法有关。

我们讨论一下环长 \(M\) 的奇偶性。

  1. \(M\) 为偶数。

我们考虑建立如下的网络流,这里以 \(M=6\) 为例:

那么显然这个图的最大流就是答案。

我们考虑把最大流转换为最小割,因为这里的限制都只和 \(i-1,i+1\) 有关,所以我们很自然地想到设 \(dp_{l,r,0/1,0/1}\) 代表区间 \([l,r]\) 左端点和右端点他们到源/汇的边是否被割,显然采用线段树加速,转移时讨论 \(mid,mid+1\) 是否被割来决定中间是否要割 \(mid \rightarrow mid+1\) 这条边。

  1. \(M\) 为奇数。

现在我们仍然考虑建出一个和上面一样的网络流,这里以 \(M=5\) 为例:

但是我们发现一个问题,\((0,M-1)\) 的限制没有被加到这个图里面,我们之前的做法完全爆了。

我们考虑一个暴力的想法,我们直接枚举 \(x_{M-1}\) 用了多少个,然后直接把 \(C_0\)\(C_{M-1}\) 减去这么多,变成这个图:

这个图就可以用我们上面的做法了。

注意到 \(x_{M-1}\) 其实只会影响到 \(0,M-1\) 这两个地方,所以他其实是一个三段的分段函数,直接分段维护即可。

http://www.aitangshan.cn/news/543.html

相关文章:

  • ZR Summer 2025 CD ACM暨 ZR Summer 2025 C 游记
  • flutter flutter_inappwebview插件里js上传调用相机和图库碰到的问题
  • ruoyi-cloud微服务docker部署
  • #dp#L 最多变的序列
  • idea系列问题
  • Infoblox推出革命性高级威胁防御方案,通过DNS层防护主动抵御AI驱动的复杂攻击
  • 电商交易-履约-库存中心业务模型设计
  • pyyzDay8
  • 基于OAuth2与JWT的微服务API安全实战经验分享 - 实践
  • 文件或文件夹访问被拒绝,文件没有权限: 1.gpedit.msc--WINDOWS设置--安全设置--安全选项--用户帐户控制:以管理员批准模式运行所有管理员---已启用
  • 那快把题端上来吧(三)
  • 时变特征场景下的主动特征获取方法评估
  • (势能线段树)SPOJ GSS4/洛谷 P4145 上帝造题7分钟/P7334 吊打 题解
  • 6.3.3 狄利克雷卷积
  • 6.3.1常见积性函数
  • 一些 DS 题目
  • 虚弱相关-【改错】-下
  • 这一次,国产全自研高性能图形GPU真的来了
  • 一文彻底讲透:AI大模型应用架构全解析
  • 读开源项目成功之道11开源项目落幕
  • 2025未来科学大奖揭晓!每人奖金约720万元
  • Dataclass
  • 计算机基础之编程
  • WRC观点:人形机器人五大爆发趋势
  • dotnet X11 获取多屏 edid 信息
  • SEO 快速流量见效的方式-新词
  • 揭开红血球双凹碟形之谜
  • OVS配置CookBook
  • 推荐7本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》
  • 打开手机 设置:搜索快应用管理--打开,删除其中不是自己安装的APP,可能有好多不是自己安装的