裁员 [问题描述] 在一个公司里,老板发现,手下的员工很多都不务正业,真正干事员工的没几个,于是老板决定大裁员,每开除一个人,同时要将其下属一并开除,如果该下属还有下属,照斩不误.给出每个人的贡献值和从属关系,求在最大贡献值的前提下最小剩下多少人及最大贡献值.留下多少人无所谓,现在老板想知道留下的人最大的贡献值是多少. [输入描述] 第一行两个整数n,m,表示有多少个员工与多少个从属关系. 第二行n个整数,表示每个员工的贡献值. 接着m行,每行两个数x,y,表示x是y的下属,一个员工可能有多个下…
第一次做最小割,不是很理解. https://www.luogu.org/problemnew/show/P1361 要把东西分进两类里,好像可以应用最小割的模板,其中一类A作为源点,另一类B作为汇点,价值就是边的容量. 然后最小割一定会割断每个中间结点的两边的其中一边,这样最大价值就顺带求出来了. 在这道题里面额外还有某些点成组出现的额外价值.题解的办法是分别虚拟两个结点代表两个集合,源点到集合a的容量是其价值,然后从a连到他的附属结点各边容量为无穷.无穷的边不能被最小割割断.所以要么是把a的…
[题目描述] 天上红绯在游戏中扮演敏剑,对于高攻击低防御的职业来说,爆发力显得非常重要,为此,她准备学习n个技能,每个技能都有2个学习方向:物理攻击和魔法攻击.对于第i个技能,如果选择物理攻击方向,会增加ap_i的爆发力,如果选择魔法攻击的方向,会增加ad_i的爆发力.此外,还有一些combo,一个combo由两个技能组成,对于第i个combo,如果他们都是魔法攻击,会额外增加AD_i的爆发力,如果他们都是物理攻击,会额外增加AP_i的爆发力,如果他们不属于同一类型,会减少AX_i的爆发力.她找…
题目链接 //裸最大权闭合子图... #include<cstdio> #include<cctype> #include<algorithm> #define gc() getchar() const int N=55005,M=N<<2,INF=1e8; int n,m,src,des; int Enum,H[N],nxt[M<<1],to[M<<1],cap[M<<1],q[N],lev[N],cur[N]; inl…
Petya and Graph http://codeforces.com/contest/1082/problem/G time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Petya has a simple graph (that is, a graph without loops or multiple edges) con…
题目地址:HDU 3917 这题简直神题意... 题目本身就非常难看懂不说..即使看懂了.也对这题意的逻辑感到无语...无论了.. 就依照那题意上说的做吧... 题意:给你n个城市,m个公司.若干条可能要建设的道路,每条有向道路须要花费,还有负责建设这条道路的公司编号,假设要建设ab道路.那么负责这条道路的公司须要建设完它负责的全部道路.并且对负责道路bx(x随意)的公司相同要求,以此类推. 每一个公司还要交税.问最多能收多少税. 依照题意来的话.相当于某些公司对某些公司有依赖性.终于的利润==…
Description 传送门 Solution em本题知识点是用网络流求最大点权闭合子图. 闭合图定义:图中任何一个点u,若有边u->v,则v必定也在图中. 建图:运用最小割思想,将S向点权为正的点连边,流量为点权:点权为负的点向T连边,流量为点权的绝对值:原图之间的边流量为inf(表明不能割).答案就是所有正点权之和-该网络流图的最小割(证明还未补qaq) 是不是觉得这个闭合图定义特别的眼熟?似乎可以套在这道题上.(题意:假如你要吃掉某个植物,需要先吃掉这个植物对应的集合,求最大的能源收入…
3438: 小M的作物 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 825  Solved: 368[Submit][Status][Discuss] Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中种植可以获得ai的收益,在B中种植可以获得bi的收益,而且,现在还有这么一种神奇的现象,就…
题目链接:http://poj.org/problem?id=2987 Time Limit: 5000MS Memory Limit: 131072K 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 li…
一个点带权的图,有一些指向关系,删掉一个点他指向的点也不能留下,问子图最大权值 题解: 这是最大权闭合团问题 闭合团:集合内所有点出边指向的点都在集合内 构图方法 1.S到权值为正的点,容量为权值 2.权值为负的点到T,容量为权值绝对值 3.原图所有点容量为INF 4.正权值和-最小割=最大权值 5.S能在残余网络中搜到的点就是删除的点的个数 #include<cstdio> #include<algorithm> #include<cstring> #include&…
玄学计数 LYY Orz 第一次见这种神奇的计数方式,乍一看非常不靠谱但是仔细想想还卡不掉 就是把在建图的时候把正权变成w*10000-1,负权变成w*10000+1,跑最大权闭合子图.后面的1作用是计数,因为在最大权闭合子图中划到s点一侧的代表选,这样一来,后四位就是起了计数作用.sum初始统计的个数就是所有正权点,然后dinic中割掉一个正权点的边即相当于在最终答案的后四位+1,也就是点数-1 然后考虑收益相同的方案,点数多的后四位一定小,而当前求得又是最小割,所以会选割掉点数少的,也就是留…
一道裸的最小割的题,写一下只是练练手. 表示被卡M,RE不开心.一道裸题至于吗? 再次复习一下最大权闭合子图: 1.每一个点若为正权,与源点连一条容量为绝对值权值的边.否则连向汇点一条容量为绝对值权值的边 2.如果有选了A点才能选B点的约束条件,且违背这个约束条件有C的代价,则从A点向B点连一条容量为C的边(如果不能违背,则连一条容量为INF的边) 3.设源点出度为C,最大流的值为D.答案为C-D. #include<cstdio> #include<queue> #include…
[题意]给定n个点,点权为pi.m条边,边权为ci.选择一个点集的收益是在[点集中的边权和]-[点集点权和],求最大获利.n<=5000,m<=50000,0<=ci,pi<=100. [算法]最大权闭合子图 或 最小割 [题解]网络流的复杂度是假的233大胆地写吧. 把边视为连向端点的点,就是最大权闭合子图了. 重点讲一下Amber论文中的最小割模型. 设$d_v$表示点v的邻边边权和,$g$表示一端选一端不选的边权和(即点集和其他点的割),那么: $$2ans=-(-\sum_…
题目链接:https://www.luogu.org/problemnew/show/P2805(bzoj那个实在是有点小小的辣眼睛...我就把洛谷的丢出来吧...) 题意概述:给出一张有向图,这张有向图上的每个点都有一个点权,想要访问某个点必须要先访问这个点所能够访问(遍历)到的所有点,在访问到一个点之后将会得到这个点的权值(可正可负).问访问这张图可以得到的最大点权和. 原题说过来说过去实际上是描述了一个植物之间的保护关系,也就是说明了植物之间的先后访问顺序之间的关系.可以描述为要“要访问点…
https://www.luogu.org/problemnew/show/P4174 最大权闭合子图的模板 每个通讯站建一个点,点权为-Pi:每个用户建一个点,点权为Ci,分别向Ai和Bi对应的点连边:然后就可以跑了 方法是: 建新源S和新汇T,从S向所有正权点连边,容量为点权值:从所有负权点向T连边,容量为点权值的相反数:原图中所有边容量设为无穷大 跑S到T最大流 原因:(网上都有,自己研究的也不知道有没有偏差) 找出图的任意一个割,其中: 显然不可能割掉容量为无穷大的边: 割掉一条S到u的…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3232 心烦意乱的时候调这道题真是...越调越气,就这样过了一晚上... 今天再认真看看,找出几处小错,就A了... 关于题解:https://www.cnblogs.com/CQzhangyu/p/6790404.html 关于最大权闭合子图:http://www.cnblogs.com/wuyiqi/archive/2012/03/12/2391960.html 对于这道题,首先,可以0…
题意 自己看吧 BZOJ传送门 分析 - 这道题其实就是一些点,存在一些二元限制条件,即如果要选uuu则必须选vvv.求得到的权值最大是多少. 建一个图,如果选uuu必须选vvv,则uuu向vvv连边.那么一个点如果要选肯定所有儿子都要选(也就是整棵子数都要选).这就是一个最大权闭合子图的模型. 可以发现,如果一个点数大于1的强连通分量每个点都不可选.那么去挑这些点,同时也可以去掉这些点的祖先.然后就是一个有向无环图.我们选点只要保证选了uuu必须选所有直接相连的儿子就行了.那么就可以用最小割建…
QWQ嘤嘤嘤 感觉是最水的一道\(G\)题了 顺便记录一下第一次在考场上做出来G qwqqq 题目大意就是说: 给你n个点,m条边,让你选出来一些边,最大化边权减点权 \(n\le 1000\) QWQ 看完这个题和数据范围,第一感觉就是网络流啊QWQ首先,我们可以将一条边视为依赖于两个端点,也就是表示,你要是选择了这一条边的收益,必须付出剩下两个点的代价. 那么这就是一个经典的最大权闭合子图 \(从S向每个边对应的点连边权,然后每个边向两个端点连inf,然后每个端点向T连点权\) 最后,用\(…
题目链接 \(Click\) \(Here\) 如果没有租用机器就是一个裸的最大权闭合子图.现在有了租用机器应该怎么办呢? 单独拆点是不行的,因为会和直接买下的情况脱离关系,租借是和连边直接相关的,那么就可以考虑在边上下功夫.我们把从工程到机器的连边从\(INF\)变成租用费用,这样再跑最大权闭合子图,就可以同时考虑租用费用了.如果租用费用过高就会割断(选用)购买机器的费用,反之亦然. #include <bits/stdc++.h> using namespace std; const in…
最大权闭合子图的模型:今天才发现dinic板子是一直挂的…… Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研究.站址勘测.最优化等项目.在前期市场调查和站址勘测之后,公司得到了一共N个可以作为通讯信号中转站的地址,而由于这些地址的地理位置差异,在不同的地方建造通讯中转站需要投入的成本也是不一样的,所幸在前期调查之后这些都是已知数…
不要被5s时限和50000点数吓倒!大胆网络流!我一个5w级别的dinic只跑了1s+! 看起来没有最大权闭合子图的特征--限制,实际上还是有的. 我们需要把中转站看成负权点,把p看成点权,把客户看成正权点,把c看成点权,然后把中转站点a.b作为客户点的依赖点 s点向所有正权点连边,流量为点权:所有负权点向t连边,流量为负点权(即正数!) 对于所有有依赖关系的点,由客户点向中转站点连边,流量为inf,也就是最大权闭合子图中的向其依赖点连边 连边的意义详见:http://www.cnblogs.c…
--一道难在读入的题. 最后解决方案直接getline一行然后是把读优拆掉放进函数,虽然很丑但是过了. 然后就是裸的最大权闭合子图了,把仪器当成负权点向t连流量为其价格的边,s向实验连流量为实验报酬的边,实验向所有它所需要的仪器连流量为inf的边表示不可割断.然后跑最大流即可. 关于输出方案,直接看dinic最后一次bfs的level数组即可,扫到的就是在方案里的. #include<iostream> #include<cstdio> #include<queue>…
/** 题目:poj2987 Firing 最大权闭合子图 边权有正有负 链接:http://poj.org/problem?id=2987 题意:由于金融危机,公司要裁员,如果裁了员工x,那么x的下级都要裁掉,如果x的下级被裁掉,那么x的下级的下级也要裁掉...依次类推 每个员工有个价值,公司裁了员工i,获得价值wi(有正有负), 问公司如何裁员获得最大价值.输出裁员人数以及最大价值. 思路:最大权闭合子图.如果员工x价值wx为正,s->x,cap=wx; 如果员工y价值为wx为负,x->t…
题目 求选最少点个数的最大权闭合子图.(板子题) 最小割入门题,什么都不想说,丢个别人题解地址就跑. 附加几点个人理解:与s相通的S点集是闭合子图,剩下的与t相通的T点集是其他的.任意一个割都保证了有一个闭合子图是S集. 然后是选最少点个数,考虑加入最大权时存在多个方案,选的点个数不同,既然各方案都是闭合的,那我全选也是闭合的,就会创出更多权值,与之前最大权矛盾,所以最大权一定点数唯一,选法唯一.那就直接从s点找残量网络,把他的点集都找一下,计下数即可.←这里有个原理,做最小割(最大流),而最大…
Firing Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 11558 Accepted: 3494 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…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1497 分析: 这是在有向图中的问题,且边依赖于点,有向图中存在点.边之间的依赖关系可以考虑最大权闭合子图 假设a与b之间有权值为c的边(根据题意是双向边) 那么我们可以建一个新节点,点的权值为c,并指向a点和b点(单向),同时断掉原本a,b之间的双向边,a,b的点的权值是它们的花费(负的) 那么对于原问题就转化成了求最大权闭合子图的问题了 ——————————————————————…
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4971 Description There's a company with several projects to be done. Finish a project will get you profits. However, there are some technical problems for some specific projects. To solve the proble…
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5855 Description The city planners plan to build N plants in the city which has M shops. Each shop needs products from some plants to make profit of proi units. Building ith plant needs investment o…
题目..说了很多东西 官方题解是这么说的: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合的点,那么Pij的权值等于w[i][j]+w[j][i](表示得分) 第二类:原串中的n个点每个点拆出一个点,第i个点权值为 –a[s[i]] (表示要花费) 第三类:对于10种字符拆出10个点,每个点的权值为  -(b[x]-a[x]) 那么我们可以得到一个关系图 ,对于第一类中的点Pij,如果想要选择Pij,你就必须要选中第二类中的点i和j,对于第二类中的点如果你想选中第i个点,其对应的字…
描述 周末,小Hi和小Ho所在的班级决定举行一些班级建设活动. 根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值. 班级一共有M名学生(编号1..M),邀请编号为i的同学来参加班级建设活动需要消耗b[i]的活跃值. 每项活动都需要某些学生在场才能够进行,若其中有任意一个学生没有被邀请,这项活动就没有办法进行. 班级建设的活跃值是活动产生的总活跃值减去邀请学生所花费的活跃值. 小Hi和小Ho需要选择进行哪些活动,来保证班级建设的活跃值尽…