描述

http://poj.org/problem?id=3155

一个公司内部共n个员工,员工之间可能曾经因为小事有了过节,总是闹矛盾。若员工u和员工v有矛盾,用边(u, v)表示,共m个矛盾。最近,公司内部越来越不团结,要裁员。想得到一个被裁人员的清单,使得被裁人员间的不团结率最高。不团结率定义为被裁人员间的矛盾总数与被裁人员数的比值(不团结率= 被裁人员之间的矛盾总数/ 被裁人员数)。


题解:

如果把一个矛盾定义为一条边,一位员工定义为一个点,那么这里的不团结率就对应着一个图的密度:图的一个子图中边数与点数的比值。不团结率最大就对应着密度最大。本题就要求求出图的最大密度子图。

·简单分析:求最大密度子图的方法就是用最大闭合子图。将每个点和每个边都看成一个结点来处理。可知:如果选择一个边(u,v),那么必须选择两个点u、v,这就符合了最大闭合子图的约束条件。然后二分答案g,只要边数 / 点数 ≥ g,就证明还有更大的密度可以取到。

·思路:关键是判断下面的条件如何判断成立:

边数点数≥g

\dfrac{边数}{点数} ≥ g要对这个不等式进行变形:

=>1∗边数−g∗点数≥0

=> 1*边数-g*点数 ≥ 0
这样就很清晰了,将每个边设为一个点权为1的结点,每个点设为一个点权为-g的结点。求最大闭合子图,如果权值大于g,就说明还有更大密度的存在。

建模:建立附加源s和附加汇t,将每条边作为一个结点ei,和他相邻的点分别是结点ui、vi。从s向每个ei连一条容量为1的边。从每个ui、vi向t连一条容量为g的边。从每个ei向相邻ui、vi连一条容量为INF的边。

实现:统计边数Total,二分答案g,每次都要重新建图求解最大流Maxflow。如果在某一g处刚好有此时的

Total−Maxflow<0

Total - Maxflow 那么g-1就是答案。

还有优化的方法,不过看不懂……

[POJ 3155] Hard Life相关推荐

  1. POJ - 3155 Hard Life(最大密度子图)

    链接:POJ - 3155 Hard Life 题意: 给定一个含有nnn个结点,mmm条边的无向图GGG,找出其一个子图G′(V,E)G'(V,E)G′(V,E),其边的条数∣E∣|E|∣E∣和点的 ...

  2. POJ 3155 最大密度子图

    题意 传送门 POJ 3155 题解 算法思路 参考<最小割模型在信息学竞赛中的应用>.分数规划,求满足条件的 xxx 最大值 ∣E∣∣V∣≥x\frac{|E|}{|V|}\geq x∣ ...

  3. POJ - 3155 Hard Life

    传送门 一道最大密度子图的模板题 一道卡精度的神题 二分精度不能太大,网络流精度不能太小 (: //Achen #include<algorithm> #include<iostre ...

  4. poj pku图论、网络流入门题总结、汇总

    poj pku图论.网络流入门题总结.汇总 分类: acm图论 2010-08-25 18:49 243人阅读 评论(0) 收藏 举报 网络算法networkgraphconstructioninte ...

  5. POJ 图论分类 + DP(较全 自己又加了点)

    DP -----------动态规划 状态压缩DP 2411 (棋盘规模较大)状态压缩DP+DFS+滚动数组 2664 (棋盘规模较小)直接递推即可(DP) 2506 (棋盘规模较小)直接递推即可(D ...

  6. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  7. 计算方法(1~3章)

    写完这些程序还是很有感触的,以前从来没有考虑过误差之类的东西,认为double 16位的精度无所不能~ 又想起ac poj 3155那个纠结的时刻,把精度调高居然还wa了!!去问sphinx,他说他也 ...

  8. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  9. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

最新文章

  1. C#中Hashtable表的应用
  2. 用扫描的方式实现Rosenfeld and Pfaltz提出的距离变换!
  3. Silverlight 鼠标与键盘事件注意点
  4. 非参数法功率谱估计(2020-11-1)
  5. pythorch基本信息查询
  6. resque java_php-resque :基于Redis的后台任务系统
  7. 如何监控 Elasticsearch 集群状态?
  8. 《Core Java 课件》Day02
  9. SQL NOTE-VARIABLE
  10. Nginx 学习--初级篇,Nginx 认识以及作用
  11. IntelliJ IDEA中项目界面右上角中没有SVN工具按钮
  12. 免费下载3小时学会Excel数据处理视频教程
  13. 戏谈编程:那些程序员的级别陷阱,你遇到过吗
  14. 有感:一名大学毕业生的反思:轰动中国万言帖 最露骨大学生活
  15. 一个中年SAP自由职业者的2020年终总结
  16. 如何在网页中插入视频
  17. 下列python语句的输出结果是_下列Python语句的输出结果是 __________ 。
  18. MongoDB not authorized for query - code 13 错误解决办法
  19. 所学所感,贵在坚持。
  20. 近期一个称重设备微信端开发前端知识点,及使用插件遇到的常见问题

热门文章

  1. 科大星云诗社动态20210421
  2. java map 查找_Map 查找表操作
  3. VirtualBox虚拟机中Ubuntu11.10安装Additions出现 读写错误的解决办法
  4. sql server 判断是否存在数据库,表,列,视图
  5. 数据库中什么是主键,什么是外键?
  6. const函数和const对象
  7. go get 命令提示没有权限问题解决
  8. Git 的特点—— Git 学习笔记 02
  9. PUSHA/PUSHAD POPA/POPAD 指令详解
  10. 防止电脑自动休眠小妙招