最小割5题

S-T割将集合分为两个部分

1.Dual Core CPU

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

题目分析:

双核cpu,有n个的模块,给出第i个模块在第一个核运行的费用和在第二个核运行的费用。以及m对模块如果不在同一个核中运行要多耗费的费用。求最小费用

分析:

注:ai为第i个模块在第一个核运行的耗费,bi为第i个模块在第二个核运行的耗费

cpu的两个核分别当做源点和汇点,源点与模块i连一条边,容量为ai,i与汇点连一条边,容量为bi。对于有限制的模块,连边(u,v)(v,u)容量为w

求最大流

ps(也可以拆点,每个点拆成两个u和u’,u->u’容量为INF,source与u连边容量为ai,u’->sink容量为bi,对于有限制的模块,u’->v,v’->u容量为w,求最大流

2、Paratroopers

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

题目分析:

在某行某列设立激光发射器,可以杀死该行或该列的所有敌人,给出在某行,某列设立激光发射器的费用。给出m个敌人的坐标,求要消灭所有敌人的最小花费

分析:

行列匹配法建图

题目是费用的乘积,取对数,转化为和

每行与source连边,容量为log(r[i]),每列与sink连边容量为log(c[i]),对于某个敌人(u,v)连边u->v 容量INF

求最大流

3、Friendship

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

题目描述:

n*n的矩阵,如果i与j有边为1,否则为0,求要使得s,t不连通最少要删除的点数,如果有多种方案,输出分数最小的

分析:

点连通度求解,按通常的拆点变为边连通度,变成求最小割

u->u’为1

(u,v)边变成 u’->v,v’->u 为INF

源点为s’,汇点为t

求最大流

然后从小到大枚举顶点,如果某个点属于最小点割集,那么maxflow会减小

4、Unique Attack

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2587

题目描述:

n台计算机,通过m条光纤相连,给出m条破坏该光纤的费用,求使得s,t不连通所需要的最小费用是否唯一

分析:

边连通度求解,判断最小割的唯一性

对于边(u,v,w)变成 (u,v,)和(v,u) 容量为w

求s到t的最大流,然后从s正向dfs,从t逆向dfs,求两次遍历到的点数和是否为N

5、Panic Room

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2788

题目描述:

你是电子防护系统9042 的首席程序员,这套软件是Jellern 公司最新、最好的家用安全软件。这套软件被设计用来保护一个房间。这套软件可以计算为了阻止从其他房间进入被保护的房间至少需要锁上几扇门。每扇门连接两个房间,只有一个控制面板,通过控制面板可以开启门。这个控制面板只能从门的某一面才能打开。例如,如果房子的布局如图6.30 所示,房间编号为0~6,标有”CP”的一面表示控制面板所在的一面(从这一面所在的房间可以打开这扇门)。在图中,为了阻止从房间1 进入房间2,至少需要锁上2 扇门,即:房间2 和房间1 之间的门、房间3 和房间1 之间的门。注意,不能阻止从房间3 进入房间2,因为总是可以在房间3 通过控制面板打开房间3 和房间2 之间的门。

分析:

边连通度,最小割求解

超级源点为s,s与所有有盗贼入侵的房间连边为INF

如果(u,v)有边,则变成(u,v)为INF,(v,u)为1,求解s到t的最大流

时间: 2024-10-10 23:14:48

最小割5题的相关文章

Being a Hero (hdu 3251 最小割 好题)

Being a Hero Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1211    Accepted Submission(s): 381 Special Judge Problem Description You are the hero who saved your country. As promised, the ki

【LA 3487】Duopoly(图论--网络流最小割 经典题)

题意:一个公司有一些资源,每种只有1割,有A.B两个公司分别对其中一些资源进行分组竞标.问卖资源的公司的最大收益. 解法:最小割.将A公司的竞标与源点相连,B公司的与汇点相连,边容量为竞标价.而A.B公司的竞标中有资源冲突的竞标之间连一条边,容量为INF.这样的最大收益就是 总竞标出价-割去竞标的边的价格的最小值. 问题!!dinic函数那里,我竟然2种打法相差了近乎3秒,也就是dfs函数流了很多次...(?Д?≡?Д?) 1 #include<cstdio> 2 #include<cs

最小割经典题(两个点依附在一起的情况)poj3469

Dual Core CPU Time Limit: 15000MS   Memory Limit: 131072K Total Submissions: 25099   Accepted: 10866 Case Time Limit: 5000MS Description As more and more computers are equipped with dual core CPU, SetagLilb, the Chief Technology Officer of TinySoft C

POJ2914 Minimum Cut【全局最小割】【Stoer-Wangner】

题目链接: http://poj.org/problem?id=2914 题目大意: 提一个无向有重边的图,有重边的边权累加起来,求全局最小割. 思路: 一个无向连通图,去掉一个边集可以使其变成两个连通分量则这个边集就是割集.最小割 集当然就是权和最小的割集. 这是一个最简单的全局最小割模板题.直接套上模板就可以了.来说说Stoer-Wangner算 法吧. Stoer-Wangner算法: 对于图中的任意两个顶点u和v,若u,v属于最小割的同一个集合中,那么僵顶点u和顶点 v合并后并不影响图的

BZOJ 1391: [Ceoi2008]order [最小割]

1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Status][Discuss] Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Input 第一行给出 N,M(1<=N<=1200,1<=M<=12

Hdu 3691 Nubulsa Expo(无向图最小割)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3691 思路:无向图最小割模板题. 流量最小且汇点自定,则可在最小割T集中任选一点当做汇点. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define debu using namespace std; const int maxn=350; const in

【BZOJ1412】[ZJOI2009]狼和羊的故事 最小割

[BZOJ1412][ZJOI2009]狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆.可是Drake很快发现狼再怎么也是狼,它们总是对羊垂涎三尺,那首歌只不过是一个动人的传说而已.所以Orez决定在羊狼圈中再加入一些篱笆,还是要将羊狼分开来养. 通过仔细观察

HDU 3452 Bonsai(网络流之最小割)

题目地址:HDU 3452 最小割水题. 源点为根节点.再另设一汇点,汇点与叶子连边. 对叶子结点的推断是看度数是否为1. 代码例如以下: #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #include <math.h> #include <ctype.h> #include &l

【CF331E】Biologist(网络流,最小割)

[CF331E]Biologist(网络流,最小割) 题面 洛谷 翻译: 有一个长度为\(n\)的\(01\)串,将第\(i\)个位置变为另外一个数字的代价是\(v_i\). 有\(m\)个要求 每个要求的形式是 首先确定若干位置都要是\(0\)或者\(1\) 然后给定这\(K\)个位置,如果些位置上都满足要求 那么就可以得到\(W_k\)元 某些要求如果失败了还要倒着给\(g\)元 问最终能够得到的最大利润 输入格式: 第一行是\(n,m,g\) 第二行是\(V_i\) 接下来\(m\)行 第