
网络流
文章平均质量分 78
lp_opai
我没有时间写一封简短的信,所以我写了一封长的。
展开
-
hdu 1533 Going Home (最小费用最大流)
/*题意:给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致。man每移动一格需花费$1(即单位费用=单位距离),一间house只能入住一个man。现在要求所有的man都入住house,求最小费用。 把man作为一个顶点集合U,house作为另一个顶点集合V,把U中所有点到V中所有点连线, 费用cost[u][v]为abs(△x)+abs(△原创 2015-07-26 21:16:18 · 386 阅读 · 0 评论 -
hdu 4411 Arrest (最小费用最大流)
/*题意:有N+1个顶点M条边的无向图。编号为0的顶点是警察厅。编号为1~N的顶点都有犯罪团伙。现在警察厅需要派出K支小队抓住这些犯罪团伙,第i个点的犯罪团伙被抓到之后会马上通知第i-1个犯罪团伙。现要求把所有犯罪团伙都抓到小队需要走的最短距离(包括从警察厅出来和回到警察厅)思路:这道题的关键之处就在于。。1.必须走过所有的点。2.走过这些点的顺序必须是递增的。。在走第i个点原创 2015-07-27 21:46:24 · 436 阅读 · 0 评论 -
LightOJ 1153 (网络流最大流 sap)
#include #include #include #include #include #include #include using namespace std;#include #include #include #include #include #include const int MAXN = 10010;//点数的最大值const int MAXM =原创 2015-07-19 19:12:48 · 475 阅读 · 0 评论 -
poj 1149 PIGS (网络流最大流Dinic)
/*题意:题意:M个猪圈,N个顾客,每个顾客有一些的猪圈的钥匙,只能购买这些有钥匙的猪圈里的猪,而且要买一定数量的猪,每个猪圈有已知数量的猪,但是猪圈可以重新打开,将猪的个数,重新分配,以达到卖出的猪的数量最多。建图:• 每个顾客分别用一个结点来表示。• 对于每个猪圈的第一个顾客,从源点向他连一条边,容量就是该猪圈里的猪的初始数量。如果从源点到一名顾客有多条边,则可以把它们合并成一条原创 2015-07-19 19:10:09 · 398 阅读 · 0 评论 -
poj 2914 Minimum Cut(无向图最小割 Stoer-Wagner算法)
/*给你无向图的信息(点和边的容量),求最小割。Stoer-Wagner算法求解最小割集普遍采用Stoer-Wagner算法1.min=MAXINT,固定一个顶点P2.从点P用“类似”prim的s算法扩展出“最大生成树”,记录最后扩展的顶点和最后扩展的边3.计算最后扩展到的顶点的切割值(即与此顶点相连的所有边权和),若比min小更新min4.合并最后扩展的那条边的两个端点为转载 2015-07-20 19:26:46 · 438 阅读 · 0 评论 -
hdu 4289 Control (最小割 sap)
/*题意:有N个城市 M条有向边 有一恐怖分子要从某一城市到另一城市 打算在某些城市安放一些SA 去抓住他但若在某个城市安放SA需要一定费用 求要抓到恐怖分子 最少的费用是多少?思路:把一个城市拆成两个点 边权为其费用两相连城市间的边权为无穷大 求其最大流即可。*/#include #include #include #include #include #include原创 2015-07-20 15:23:03 · 466 阅读 · 0 评论 -
hdu 3572 Task Schedule(网络流最大流)
/*题目大意:工厂有m台机器,需要做n个任务。对于一个任务i,你需要花费一个机器Pi天,而且,开始做这个任务的时间要>=Si,完成这个任务的时间<=Ei。对于一个任务,只能由一个机器来完成,一个机器同一时间只能做一个任务。但是,一个任务可以分成几段不连续的时间来完成。问,能否做完全部任务。建图:把每个任务和每一天都看做一个点,添加源点和汇点。源点与每个任务之间连一条边,容量为完成该原创 2015-07-20 14:12:09 · 489 阅读 · 0 评论