POJ2987 Firing 最大权闭合图】的更多相关文章

详情请参考http://www.cnblogs.com/kane0526/archive/2013/04/05/3001557.html 值得注意的地方,割边会把图分成两部分,一部分和起点相连,另一部分和汇点相连 我们只需要关注和起点相连的点的点就好,如何统计呢? 只需要从起点开始搜索,只要边不是满流,一直搜就好 然后,答案就是总权值-最小割 注:对于dinic网络流,我还是喜欢LRJ白书上的,用起来方便 #include <cstdio> #include <cstdlib> #…
/** 题目:poj2987 Firing 最大权闭合子图 边权有正有负 链接:http://poj.org/problem?id=2987 题意:由于金融危机,公司要裁员,如果裁了员工x,那么x的下级都要裁掉,如果x的下级被裁掉,那么x的下级的下级也要裁掉...依次类推 每个员工有个价值,公司裁了员工i,获得价值wi(有正有负), 问公司如何裁员获得最大价值.输出裁员人数以及最大价值. 思路:最大权闭合子图.如果员工x价值wx为正,s->x,cap=wx; 如果员工y价值为wx为负,x->t…
题目链接:http://poj.org/problem?id=2987 You’ve finally got mad at “the world’s most stupid” employees of yours and decided to do some firings. You’re now simply too mad to give response to questions like “Don’t you think it is an even more stupid decisio…
POJ2987 Firing Description You've finally got mad at "the world's most stupid" employees of yours and decided to do some firings. You're now simply too mad to give response to questions like "Don't you think it is an even more stupid decisi…
Description You’ve finally got mad at “the world’s most stupid” employees of yours and decided to do some firings. You’re now simply too mad to give response to questions like “Don’t you think it is an even more stupid decision to have signed them?”,…
http://poj.org/problem?id=2987 题意:有公司要裁员,每裁一个人可以得到收益(有正有负),而且如果裁掉的这个人有党羽的话,必须将这个人的所有党羽都裁除,问最少的裁员人数是多少和最大收益是多少. 思路:有依赖关系,最大权闭合图.我们要得到最大收益,那么就是尽量选择更多收益为正数的人,选择更少收益为负数的人,因此我们将收益为正数的人与源点连一条边,将收益为负数的人与汇点连一条边,这样得到的割集就是未选择的收益为正数的人+选择的收益为负数的人(也可以是损失的收益),很明显答…
题意:给出一个有向图,选择一个点,则要选择它的可以到达的所有节点.选择每个点有各自的利益或损失.求最大化的利益,以及此时选择人数的最小值. 算法:构造源点s汇点t,从s到每个正数点建边,容量为利益.每个负点到t建边,容量为损失的绝对值.其他关系边容量正向无穷,反向0.正数点总和减去最小割即为最大权闭合图答案.因为残余网络不会对0流边处理,所以不会将0流点选入取点集,所以最小割的取法中为被选中的点. 最大权闭合图的求解方法: 先构造网络流N,添加源点s,从s到正权值点做一条边,容量为点的权值. 添…
http://poj.org/problem?id=2987 https://blog.csdn.net/u014686462/article/details/48533253 给一个闭合图,要求输出其最大权闭合图的权值和需要选的最少点数,最大权闭合图定义和网络流连边方式见博客. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostrea…
[题目链接] http://poj.org/problem?id=2987 [题目大意] 为了使得公司效率最高,因此需要进行裁员, 裁去不同的人员有不同的效率提升效果,当然也有可能是负的效果, 如果裁去一个上级,那么他所管辖的下级需要全部裁掉,问最大效率提升 同时求出最小裁员 [题解] 我们从上司向所有的下属连线会发现裁去的部分恰是一个最大权闭合图 所以按照最大权闭合图建图求最小割,残余网络就是裁员数量. [代码] #include <cstdio> #include <cstring&…
Language: Default Firing Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 8744   Accepted: 2631 Description You’ve finally got mad at “the world’s most stupid” employees of yours and decided to do some firings. You’re now simply too mad…