ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

最大权闭合子图与最大密度子图

2022-01-03 21:34:02  阅读:177  来源: 互联网

标签:mathbb 最大 val text sum 子图 闭合


最大权闭合子图

问题

给定一个有向图,点有点权(有正负),从中选出一个子图的点权和最大并且满足对于每一条有向边 \((u,v)\) ,若 \(u\) 在子图内则 \(v\) 必须在子图内部。

解法

考虑每一个点最后必然只存在于两种情况之中——在或不在最大权闭合子图中。因此我们考虑使用最小割,将位于最大权闭合子图中的点与 \(S\) 位于一个集合之中,否则与 \(T\) 在一个集合之中。

那么显然可以建边 \((S,u,val_u)\) ,表示割掉这条边我们就放弃这个点的权值。同时对于原图上的有向边,我们令其边权为 \(+\infty\) 。同时每一个点向汇点连去一条 \((u,T,0)\) 的边,表示分到和 \(S\) 一组不会损失权值。

但是考虑到权值可能存在负数,所以我们利用一个预流的 \(\text{trick}\) ,即先将 \(S\rightarrow u\rightarrow T\) 流 \(-val_u\) 的流量,同时将我们一开始的总权值减去对应的流量。转化之后我们相当于对负权点建 \((S,u,0)\) 和 \((u,T,-val_u)\) 两条边,答案就是所有正权点的和减去该图的最小割。

最大密度子图

问题

给定一张无向图,边有边权,点有点权,选出一个边集 \(\mathbb E\) ,令 \(\mathbb V\) 为边集中点对应的点集,最大化下式:

\[\text{res}=\frac{\sum_{e\in\mathbb E}val_e}{\sum_{u\in\mathbb V}val_u} \]

解法

考虑这个问题是一个很类似于 \(01\) 分数规划的东西,我们尝试用类似的解法来做,考虑二分这个答案 \(\text{mid}\) 。

\[\sum_{e\in\mathbb E}val_e\ge \text{mid}(\sum_{u\in\mathbb V}val_u)\\ \sum_{e\in\mathbb E}val_e-\text{mid}(\sum_{u\in\mathbb V}val_u)\ge 0\\ \]

所以我们要使得

\[\sum_{e\in\mathbb E}val_e-\text{mid}(\sum_{u\in\mathbb V}val_u) \]

最大。

算法一

考虑到我们前面的最大权闭合子图,发现我们这里需要满足边选择了,点就必须选。我们就给每一条边和点建出对应的点,并做最大权闭合子图即可。

算法二

诱导子图最小割。(不会)

标签:mathbb,最大,val,text,sum,子图,闭合
来源: https://www.cnblogs.com/Point-King/p/15760574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有