首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
bzoj 2039 & 洛谷 P1791 人员雇佣 —— 二元关系最小割
】的更多相关文章
bzoj 2039 & 洛谷 P1791 人员雇佣 —— 二元关系最小割
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2039 https://www.luogu.org/problemnew/show/P1791 做法就这样:https://www.cnblogs.com/BearChild/p/6426850.html 如果不是先连边再加边权(话说这样很奇怪啊),而是算好边权再连边,再各种等价改一改,就能快2000ms,能在洛谷上A了... 代码如下: #include<cstdio> #include…
BZOJ 2039 人员雇佣 二元关系 最小割
题面太长了,请各位自行品尝—>人员雇佣 分析: 借用题解的描述: a.选择每个人有一个代价Ai b.如果有两个人同时选择就可以获得收益Ei,j c.如果一个人选择另一个不选会产生代价Ei,j 这是一道模型题(不是模板题是模型题)我们要记住这种建模. 之前说过,最小割问题关键在于“舍弃”,所以说我们这个也是,要么舍弃Eij,要么舍弃Ai,Aj,要么舍弃完某个A还得付出Eij的代价. 这里直接给出建图方法. 首先,我们从原点向每个人i连边,容量为Σ(Eij)(1<=j<=n),表示选这个人最…
BZOJ_2039_[2009国家集训队]employ人员雇佣_ 最小割
BZOJ_2039_[2009国家集训队]employ人员雇佣_ 最小割 Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司.这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即当经理i和经理j同时被雇佣时,经理i会对经理j做出贡献,使得所赚得的利润增加Ei,j.当然,雇佣每一个经理都需要花费一定的金钱Ai,对于一些经理可能他做出的贡献不值得他的花费,那么作为一个聪明的人,小L当然不会雇佣他. 然而,那些没有…
【BZOJ 2039】 2039: [2009国家集训队]employ人员雇佣 (最小割)
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 1511 Solved: 728 Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司.这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即当经理i和经理j同时被雇佣时,经理i会对经理j做出贡献,使得所赚得的利润增加Ei,j.当然,雇佣每一个经理都需要花费一定…
BZOJ 2039:[2009国家集训队]employ人员雇佣(最小割)
http://www.lydsy.com/JudgeOnline/problem.php?id=2039 题意:中文题意. 思路:一开始想着和之前做的最大权闭合图有点像,但是如果把边全部当成点的话,那么点也太多了. 对于这种选和不选的方案问题,还是一样用最小割来解决,求最小的损失收益,然后用能够得到的总收益去减去最小割的值就是答案.思维模式是:将S集或者T集的某一边当成是选择的,另一边当成是不选择的,根据这样去连边,就可能更容易想到建图方案. 在这题里面,我把T集当成是选择的人,把S集当成是不选…
bzoj2039: [2009国家集训队]employ人员雇佣(最小割)
传送门 膜一下大佬->这里 不难看出这是一个最小割的模型(然而我看不出来) 我们从源点向每一个点连边,容量为他能带来的总收益(也就是他能对其他所有经理产生的贡献) 然后从每一个点向汇点连边,容量为雇佣他的费用 那么考虑一下,如果我们割了源点到他的连线,代表不选他,就损失了相当于容量的利润 如果我们割了他到汇点的连线,代表选他,那么需要支付相当于容量的代价 那么只要用所有的收益减去最小割就是答案 然而还有一个条件,如果选$i$不选$j$会有损失 那么我们从$i$到$j$连容量为$E_{i,j}*2…
bzoj 2039: [2009国家集训队]employ人员雇佣【最小割】
一开始在https://www.cnblogs.com/lokiii/p/10770919.html基础上连(i,j,b[i][j])建了个极丑的图T掉了--把dinic换成isap勉强能卡过 首先因为有正负收益所以考虑最小割,先ans=Σb,然后考虑负收益 把割完后和s相邻的视为不选,反之视为选,选的话要付出代价a,所以连(s,i,a[i]):然后考虑如果ij一个选一个不选(这里是单向的),需要Eij的代价,所以连(i,j,E[i][j]):然后是如果一个点不选的话那么所有Eij都不会被加,所…
[洛谷]P3729 曼哈顿计划EX(最小割树/等价流树)
题目大意:给出一张n个点m条边的无向图,每个点有点权,q次询问,每次给出k,要求选出若干个点点权之和不小于k,求一个最大的值x,使得选出的点中任意两点之间至少有x条互不相交的链.(n<=550,m<=3000,q<=2017) 当时看到这题一看就不可做 看了题解说什么等价流树也看不懂 后来FallDream大佬做了一题最小割树 看了看网上大神极短的说明加上自己大量的脑补终于搞懂了这玩意儿 另外貌似等价流树就是最小割树 最小割树的思路大概是先任意求出两点之间的最小割,并把整张图按最小割分成…
洛谷.3355.骑士共存问题(最小割ISAP)
题目链接 一个很暴力的想法:每个点拆点,向不能同时存在的连边 但是这样边太多了,而且会有很多重复.我不会说我还写了还没过样例 我们实际就是在做一个最大匹配.考虑原图,同在黄/红格里的骑士是互不攻击的,即不会连边. 那么拿这两部分建二分图,分别连向S,T.障碍直接不参与连边.这样边数也少 也直观好写. 原问题尽可能保留多等价于尽可能移走少.求最小割即可. #include <cstdio> #include <cctype> #include <algorithm> #d…
洛谷 P3227 [HNOI2013]切糕(最小割)
题解 Dinic求最小割 题目其实就是求最小的代价使得每个纵轴被分成两部分 最小割!!! 我们把每个点抽象成一条边,一个纵轴就是一条\(S-T\)的路径 但是题目要求\(|f(x,y)-f(x',y')| ≤D\) 不能直接跑最小割 考虑如何限制 首先,\(|f(x,y)-f(x',y')| ≤D\)是相互的 所以只要考虑 \(f(x,y)-f(x',y')\leq D\) 限制想一想看代码就明白了 代码就很简洁了 Code #include<bits/stdc++.h> #define LL…