超神的建模,极其有借鉴意义/cy

注:该建模对应于最小割建模

对于 \(n\) 个数,每个数有 \(m\) 种取值的技巧

\(\forall i=1,2,\dots,n\),令 \(S=V_{i,0}\rightarrow V_{i,1}\rightarrow \dots \rightarrow V_{i,m}=T\),也就是形成 \(n\) 条链。

此时,\(i\) 取值 \(j\) 时对应着切断边 \(V_{i,j-1}\rightarrow V_{i,j}\),因此这条边可以附上权值 \(c_{i,j}\)。

注意,这时候我们还要连一条 \(V_{i,j}\rightarrow V_{i,j-1}\) 的边,边权为 \(+\infty\)。理由如下:

我们会发现上面那条链断了 3 条边,由于有其它边的介入,左边跑到 \(T\) 一边了,右边跑到 \(S\) 一边了,这显然不符合我们的期望。

而加上无穷大的边后————

发现 \(S\) 和 \(T\) 连通了,显然与最小割不符。于是可以保证每条链左边属于 \(S\),右边属于 \(T\)。

另外,如果一条链断了 3 条边,则 3 条小链中必有两个同属于 \(S\) 或 \(T\),它们之间的边就没必要断了,与最小性不符。

至此,我们可以保证每条链恰好断一条边,其代价对应于选相应元素的代价,且左边属于 \(S\),右边属于 \(T\)。

处理不同数所选值之间关系的技巧

本题中要求对于数 \(i\) 和 \(j\),会产生 \(|x_i-x_j|\cdot W_{i,j}\) 的代价。

不妨设 \(x_i<x_j\)(反之类似),则代价即为 \(\sum\limits_a [x_i\le a<x_j] W_{i,j}\)。

于是考虑对每个 \(a\) 连一条代价为 \(W_{i,j}\) 的边。

对 \(x_i,x_j\) 进行归并排序,则相邻两个数之间的 \(a\) 可以合并,于是只有 \(O(m)\) 条边。

举一个 \(x_i\le a<x_j\) 的例子:

可以看到图中 \(x_2<y_3\),即 \(x_2\le a<y_3\),此时上面那条链可以切蓝色的边,下面那条链可以切紫色的边,于是此时是从 \(y_2\) 向 \(x_2\) 连一条边,边权为 \(y_3-x_2\)。

注意一下谁往谁连边即可,注意权值差也有可能是 \(x_k-x_{k-1}\),需要取一个 \(\max\)。

ARC129E Yet Another Minimization 题解 【网络流笔记】的更多相关文章

  1. [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码

    [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起 ...

  2. 网络流$1$·简单的$EK$与$Dinic~of~Net-work ~ Flow$学习笔记

    \(2333\)这是好久之前学的了,不过一直在咕咕咕咕. 一般来讲,正常的网络流笔记一开始都是要给网络流图下定义的.那么我们不妨也来先进行一波这种操作. 那么网络流图,类似于有向图,边上带权,但是这个 ...

  3. 【网络流】POJ1273 Drainage Ditches

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78671   Accepted: 3068 ...

  4. 【BZOJ1001】狼抓兔子(网络流)

    [BZOJ1001]狼抓兔子(网络流) 题面 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨, ...

  5. 【Luogu1345】奶牛的电信(网络流)

    [Luogu1345]奶牛的电信(网络流) 题面 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成 ...

  6. 【BZOJ3931】【CQOI2015】网络吞吐量(最短路,网络流)

    [BZOJ3931][CQOI2015]网络吞吐量(最短路,网络流) 题面 跑到BZOJ上去看把 题解 网络流模板题??? SPFA跑出最短路,重新建边后 直接Dinic就行了 大火题嗷... #in ...

  7. TZOJ 2099 Sightseeing tour(网络流判混合图欧拉回路)

    描述 The city executive board in Lund wants to construct a sightseeing tour by bus in Lund, so that to ...

  8. 【bzoj3774】最优选择 网络流最小割

    题目描述 小N手上有一个N*M的方格图,控制某一个点要付出Aij的代价,然后某个点如果被控制了,或者他周围的所有点(上下左右)都被控制了,那么他就算是被选择了的.一个点如果被选择了,那么可以得到Bij ...

  9. 【BZOJ1458】【洛谷4311】士兵占领(网络流)

    [BZOJ1458][洛谷4311]士兵占领(网络流) 题面 BZOJ权限题,洛谷真好 Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最 ...

随机推荐

  1. 896.Montonic Array - LeetCode

    Question 896. Monotonic Array Solution 题目大意: 类似于数学中的减函数,增函数和物理中的加速度为正或为负 思路: 先比较前两个是大于0还是小于0,如果等于0就比 ...

  2. Cocos---大作业:简单H5小游戏

    Cocos大作业:传统美食分分类 知识点清单: 场景切换,监听时间,碰撞组件及回调,拖动角色移动,分数记录,随机数和定时器,背景音乐控制,资源池控制,预制体,进度条... 源码+q:143144832 ...

  3. Proxmox 5.4使用vgpu_unlock,为GTX1060开启vGPU支持

    本文介绍如何为GTX1060显卡开启vGPU功能.消费级显卡不支持nvidia GRID vGPU功能.在2021年初,疫情激发了黑客的创作热情,给出了一个vgpu_unlock的补丁,可以让消费级显 ...

  4. MySql笔记Ⅰ

    MySql part 1: 数据库概念 数据库:(DataBase, 简称DB):数据库中的数据按一定的数据模型组织.描述和储存,具有较小的冗余度.较高的数据独立性和易扩展性,并可为各种 用户共享 数 ...

  5. v86.01 鸿蒙内核源码分析 (静态分配篇) | 很简单的一位小朋友 | 百篇博客分析 OpenHarmony 源码

    本篇关键词:池头.池体.节头.节块 内存管理相关篇为: v31.02 鸿蒙内核源码分析(内存规则) | 内存管理到底在管什么 v32.04 鸿蒙内核源码分析(物理内存) | 真实的可不一定精彩 v33 ...

  6. 拭目以待!JNPF .NET将更新.NET 6技术,同时上线 3.4.1 版本

    2022年5月30日,福建引迈即将上线JNPF开发平台的.NET 6版本,在产品性能上做了深度优化,且极大的提升了工作效率,加强了对云服务的改进升级,全面提升用户的使用体验. JNPF是一个以PaaS ...

  7. Number.prototype.toString()方法

    Number.prototype.toString(radix)方法返回指定基数对应Number的字符串值 radix可选参数,值范围为2~36,转化基数,如果未指定,默认值为10,如果radix值不 ...

  8. ssh打通

    打通ssh https://www.cnblogs.com/yolanda-lee/p/4975453.html

  9. generatorConfig.xml自动生成实体类,dao和xml

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration ...

  10. 使用Vite2+TypeScript4+Vue3技术栈,如何入手开发项目

    前言 今天,我们使用Vite2.0+Vue3+TS来试玩一下,开发一个demo项目.实战 我们,打开Vite官方网站(https://cn.vitejs.dev/). Vite (法语意为 " ...