ARC129E Yet Another Minimization 题解 【网络流笔记】
Link
超神的建模,极其有借鉴意义/cy
注:该建模对应于最小割建模
对于 个数,每个数有 种取值的技巧
,令 ,也就是形成 条链。
此时, 取值 时对应着切断边 ,因此这条边可以附上权值 。
注意,这时候我们还要连一条 的边,边权为 。理由如下:
我们会发现上面那条链断了 3 条边,由于有其它边的介入,左边跑到 一边了,右边跑到 一边了,这显然不符合我们的期望。
而加上无穷大的边后————
发现 和 连通了,显然与最小割不符。于是可以保证每条链左边属于 ,右边属于 。
另外,如果一条链断了 3 条边,则 3 条小链中必有两个同属于 或 ,它们之间的边就没必要断了,与最小性不符。
至此,我们可以保证每条链恰好断一条边,其代价对应于选相应元素的代价,且左边属于 ,右边属于 。
处理不同数所选值之间关系的技巧
本题中要求对于数 和 ,会产生 的代价。
不妨设 (反之类似),则代价即为 。
于是考虑对每个 连一条代价为 的边。
对 进行归并排序,则相邻两个数之间的 可以合并,于是只有 条边。
举一个 的例子:
可以看到图中 ,即 ,此时上面那条链可以切蓝色的边,下面那条链可以切紫色的边,于是此时是从 向 连一条边,边权为 。
注意一下谁往谁连边即可,注意权值差也有可能是 ,需要取一个 。
本文作者:CharlieVinnie
本文链接:https://www.cnblogs.com/Charlie-Vinnie/p/16552499.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步