图论-网络流
lab104_yifan
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #290 (Div. 1) A, B, C
A:对于每个名字,和上一个人比较一下,可以知道哪些字母应该在哪些字母前面,然后拓扑排序判一下是否有环,要注意判断是否存在字符串等于前一个字符串的前缀,有环就是矛盾,没环就输出拓扑序即可B:其实只要选一些数字gcd能满足1,就是可以构造无限多的数字(这个跟辗转相除法有关系),然后题目就转换成,选一些数字使得gcd为1的最小代价,那么进行背包即可,dp[i][j]表示选到i个数字,gcd为j的最小原创 2015-02-03 22:00:35 · 697 阅读 · 0 评论 -
POJ 3155 Hard Life(最大密度子图)
POJ 3155 Hard Life题目链接最大密度子图模板题代码:#include #include #include #include using namespace std;const int MAXNODE = 1105;const int MAXEDGE = 100005;typedef double Type;const Type I原创 2014-11-12 22:57:45 · 1147 阅读 · 0 评论 -
HDU 3416 Marriage Match IV(最短路+最大流)
HDU 3416 Marriage Match IV题目链接题意:给一个有向图,给定起点终点,问最多多少条点可以重复,边不能重复的最短路思路:边不能重复,以为着每个边的容量就是1了,最大流问题,那么问题只要能把最短路上的边找出来,跑一下最大流即可,判断一条边是否是最短路上的边,就从起点和终点各做一次dijstra,求出最短路距离后,如果一条边满足d1[u] + d2[v]原创 2014-11-11 20:33:25 · 860 阅读 · 0 评论 -
HDU 3277 Marriage Match III(二分+最大流)
HDU 3277 Marriage Match III题目链接题意:n个女孩n个男孩,每个女孩可以和一些男孩配对,此外还可以和k个任意的男孩配对,然后有些女孩是朋友,满足这个朋友圈里面的人,如果有一个能和某个男孩配对,其他就都可以,然后每轮要求每个女孩匹配到一个男孩,且每轮匹配到的都不同,问最多能匹配几轮思路,比HDU3081多了一个条件,此外可以和k个任意的男孩配对,转化原创 2014-11-11 19:31:34 · 979 阅读 · 1 评论 -
HDU 3081 Marriage Match II(二分+最大流)
HDU 3081 Marriage Match II题目链接题意:n个女孩n个男孩,每个女孩可以和一些男孩配对,然后有些女孩是朋友,满足这个朋友圈里面的人,如果有一个能和某个男孩配对,其他就都可以,然后每轮要求每个女孩匹配到一个男孩,且每轮匹配到的都不同,问最多能匹配几轮思路:二分轮数k,然后建图为,源点连向女孩,男孩连向汇点容量都为k,然后女孩和男孩之间连边为,有关系的连原创 2014-11-11 18:47:57 · 844 阅读 · 0 评论 -
HDU 3338 Kakuro Extension(网络流)
HDU 3338 Kakuro Extension题目链接题意:完成如图的游戏,填充数字1-9思路:网络流的行列模型,把每行每列连续的一段拆分出来建图即可,然后题目有限制一个下限1,所以 每行每列的容量减去相应的数字,然后建图建容量8就好,这样就默认原来容量已经有1了代码:#include #include #include #include usi原创 2014-11-11 13:41:59 · 950 阅读 · 0 评论 -
HDU 2883 kebab(最大流)
HDU 2883 kebab题目链接题意:有一个烧烤机,每次最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,每个烤肉所需烘烤时间为 di,注意一个烤肉可以切成几份来烤思路:把区间每个点存起来排序后,得到最多2 * n - 1个区间,这些就表示几个互相不干扰的时间,每个时间内只可能有一个任务器做,这样建模就简单了,原创 2014-11-10 23:42:55 · 976 阅读 · 0 评论 -
HDU 1733 Escape(分层网络流)
HDU 1733 Escape题目链接题意:给定一个图,#是墙,@是出口,.可以行走,X是人,每个时间每个格子只能站一个人,问最少需要多少时间能让人全部撤离(从出口出去)思路:网络流,把每个结点每秒当成一个结点,这样枚举时间,每多一秒就在原来的网络上直接加一层继续增广即可,注意考虑方向的时候,要考虑上原地不动代码:#include #include #i原创 2014-11-10 22:03:57 · 1220 阅读 · 0 评论 -
HDU 3215 Being a Hero(最小割)
HDU 3215 Being a Hero题目链接题意:一个英雄,分到几个城市,每个城市有一个价值,但是要求分到城市后,必须破坏掉道路使得首都1都不能到达,破坏道路有开销,问最大能获得的收益和需要破坏的道路ID思路:最小割,城市1做源点,有向边建图,容量为代价,然后每个可以分的城市连到汇点,容量为价值,跑一下最小割即可代码:#include #includ原创 2014-11-10 16:48:29 · 1023 阅读 · 0 评论 -
HDU 3035 War(对偶图求最小割)
HDU 3035 War题目链接题意:根据图那样,给定一个网络,要求阻断s到t,需要炸边的最小代价思路:显然的最小割,但是也显然的直接建图强行网络流会超时,这题要利用平面图求最小割的方法,把每一块当成一个点,共有边连边,然后每一个路径就是一个割,然后最短路就是最小割了代码:#include #include #include #include usi原创 2014-11-09 22:27:23 · 928 阅读 · 0 评论 -
HDU 3046 Pleasant sheep and big big wolf(最小割)
HDU 3046 Pleasant sheep and big big wolf题目链接题意:一个n * m平面上,1是羊,2是狼,问最少要多少围墙才能把狼全部围住,每有到达羊的路径思路:有羊和狼,要分成两个集合互不可达,显然的最小割,建图源点连狼,容量无穷,羊连汇点,容量无穷,然后相邻格子连边,容量为1代码:#include #include #inc原创 2014-11-10 11:16:45 · 993 阅读 · 0 评论 -
HDU 3313 Key Vertex(dfs + bfs)
HDU 3313 Key Vertex题目链接题意:一个有向无环图,求s,t之间的割点思路:先spfa找一条最短路出来,如果不存在,就n个都是割点。然后每次从s进行dfs,找到能经过最短路上的最远点,然后这个点就是割点,然后下次在以这个为起点dfs,不断迭代直到找到t为止代码:#include #include #include #include原创 2014-11-09 17:24:58 · 1111 阅读 · 0 评论 -
HDU 2732 Leapin' Lizards(拆点+最大流)
HDU 2732 Leapin' Lizards题目链接题意:有一些蜥蜴在一个迷宫里面,有一个跳跃力表示能跳到多远的柱子,然后每根柱子最多被跳一定次数,求这些蜥蜴还有多少是无论如何都逃不出来的。思路:把柱子拆点建图跑最大流即可,还是挺明显的代码:#include #include #include #include #include using n原创 2014-11-12 15:09:54 · 1193 阅读 · 0 评论 -
HDU 3157 Crazy Circuits(有源汇上下界最小流)
HDU 3157 Crazy Circuits题目链接题意:一个电路板,上面有N个接线柱(标号1~N),还有两个电源接线柱 + -,给出一些线路,每个线路有一个下限值求一个可以让所有部件正常工作的总电流 没有则输出impossible思路:有源汇有上下界求最小流,建模方法为:按无源汇先建图,跑超级源汇ss->tt一次,然后加入t->s,容量INF的边,在跑一次ss-原创 2014-11-12 21:49:01 · 1239 阅读 · 0 评论 -
【图论】网络流总结
【图论】网络流总结最大流部分网络流题目的关键:看出是网络流并且确定正确的模型最大流算法:用来解决从源点s到汇点t,整个网络最多能输送多少流量的题目模板:#include #include #include #include using namespace std;const int MAXNODE = 105 * 2;const int MAX原创 2014-11-13 12:34:29 · 2223 阅读 · 1 评论 -
POJ 3204 Ikki's Story I - Road Reconstruction(最大流)
POJ 3204 Ikki's Story I - Road Reconstruction题目链接题意:给定一个有向图,求出最大流后,问哪些边增加容量后,可以使最大流增加思路:对于一个可以增加的,必然原来就是满流,并且从源点到汇点,的一条路径上,都是还有残留容量的,这样只要从源点和汇点分别出发dfs一遍,标记掉经过点,然后枚举满流边,如果两端都是标记过的点,这个边就是可以增原创 2014-11-07 19:56:04 · 869 阅读 · 0 评论 -
POJ 2516 Minimum Cost(费用流)
POJ 2516 Minimum Cost题目链接题意:转一篇题意吧。。感觉写的很详细了,優YoU http://blog.csdn.net/lyy289065406/article/details/6742534 思路:一开始是把所有商家的每种物品和所有供应商所有物品连边跑费用流,结果TLE了,因为这样建出来的图,边数会非常的庞大那么其实转化一下思路,每种物品原创 2014-11-06 13:48:31 · 751 阅读 · 0 评论 -
POJ 3670 Intervals(费用流)
POJ 3680 Intervals题目链接题意:给定一些区间,每个区间有一个权值,要求用这些区间去覆盖,每个点最多覆盖k次,问最多得到权值多少思路:典型的区间k覆盖问题,区间连边容量1,代价-w,然后其他点相邻两两连边,容量k,代价0,跑一下费用流即可代码:#include #include #include #include #include原创 2014-11-06 23:54:13 · 727 阅读 · 0 评论 -
POJ 3469 Dual Core CPU(最小割)
POJ 3469 Dual Core CPU题目链接题意:有a,b两台机器,有n个任务,在a机器和b机器需要不同时间,给定m个限制,如果u, v在不同机器需要额外开销,问最小开销思路:最小割,源点为a机器,汇点为b机器,这样的话求出最小割,就是把点分成两个集合的最小代价,然后如果u, v在不同机器需要开销,则连u,v v,u两条边,容量为额外开销,这样如果这条边是割边,则a原创 2014-11-06 22:24:04 · 926 阅读 · 0 评论 -
POJ 3281 Dining(最大流)
POJ 3281 Dining题目链接题意:n个牛,每个牛有一些喜欢的食物和饮料,每种食物饮料只有一个,问最大能匹配上多少只牛每个牛都能吃上喜欢的食物和喜欢的饮料思路:最大流,建模源点到每个食物连一条边,容量为1,每个饮料向汇点连一条边容量为1,然后由于每个牛有容量1,所以把牛进行拆点,然后食物连向牛的入点,牛的出点连向食物,跑一下最大流即可代码:#incl原创 2014-11-06 17:32:50 · 768 阅读 · 0 评论 -
POJ 2135 Farm Tour(费用流)
POJ 2135 Farm Tour题目链接题意:给定一个无向图,边有权值,求从1到n再从n到1的最短路思路:费用流,连边容量为1(注意是无向图),然后源点和1连容量2,n和汇点连容量是2代码:#include #include #include #include #include using namespace std;const int M原创 2014-11-05 23:17:21 · 736 阅读 · 0 评论 -
POJ 1149 PIGS(最大流)
POJ 1149 PIGS题目链接题意:有n个猪圈,m个顾客,猪圈中一开始有一些猪,顾客轮流来(注意是有先后顺序的),然后每个顾客会开启一些猪圈,在开启的猪圈中最多买b只猪,之后可以任意把剩下的猪分配到开着的猪圈中,问最多能卖出几只猪思路:这题的关键在于建模,由于顾客有先后顺序,假如后来的顾客会开启x门,前面一个顾客也会开启x门,那么前面顾客相当与可以分配给后面顾客,所原创 2014-11-05 22:38:37 · 782 阅读 · 1 评论 -
POJ 2112 Optimal Milking(二分+最大流)
POJ 2112 Optimal Milking题目链接题意:给定一些机器和奶牛,在给定距离矩阵,(不在对角线上为0的值代表不可达),每个机器能容纳m个奶牛,问所有奶牛都能挤上奶,那么走的距离最大的奶牛的最小值是多少思路:明显的二分+最大流,注意floyd求出的距离矩阵最大值可能不止200,所以二分的上限要注意代码:#include #include #原创 2014-11-05 21:24:05 · 816 阅读 · 0 评论 -
POJ 2455 Secret Milking Machine(二分+最大流)
POJ 2455 Secret Milking Machine题目链接题意:一个无向图,要求有T条不重复道路可以从1走到t,问道路中最大边的最小值可以是多少思路:二分+最大流,二分长度,连起边,注意是无向图,所以反向边是有容量的,然后源点和1连容量t,n和汇点连容量是t代码:#include #include #include #include us原创 2014-11-05 21:41:52 · 879 阅读 · 0 评论 -
POJ 1698 Alice's Chance(最大流+拆点)
POJ 1698 Alice's Chance题目链接题意:拍n部电影,每部电影要在前w星期完成,并且一周只有一些天是可以拍的,每部电影有个需要的总时间,问是否能拍完电影思路:源点向每部电影连边,容量为d,然后每部电影对应能拍的那天连边,由于每天容量限制是1,所以进行拆点,然后连向汇点即可代码:#include #include #include #i原创 2014-11-05 09:57:06 · 968 阅读 · 0 评论 -
UVA 1306 - The K-League(网络流)
UVA 1306 - The K-League题目链接题意:n个球队,已经有一些胜负场,现在还有一些场次,你去分配胜负,问每支球队有没有可能获胜思路:网络流公平分配模型,把场次当作任务,分配给人,然后先贪心,枚举每个人,让这些人能赢的都赢,剩下的去建图,每个源点连向比赛容量为场次,每个比赛连向2个球队,容量无限大,每个球队连向汇点,容量为每个的人的总和减去当前已经赢的,建完原创 2014-10-10 22:35:40 · 1292 阅读 · 0 评论 -
HDU 3061 Battle(最大权闭合)
HDU 3061 Battle题目链接思路:最大权闭合裸题代码:#include #include #include #include using namespace std;const int MAXNODE = 505;const int MAXEDGE = 200005;typedef int Type;const Type INF = 0原创 2014-11-09 09:53:04 · 596 阅读 · 0 评论 -
HDU 1565 1569 方格取数(最大点权独立集)
HDU 1565 1569 方格取数(最大点权独立集)题目链接题意:中文题思路:最大点权独立集 = 总权值 - 最小割 = 总权值 - 最大流那么原图周围不能连边,那么就可以分成黑白棋盘,源点连向黑点,白点连向汇点,容量都为点容量,然后黑白之间相邻的就连一条容量无限大的边代码:#include #include #include #includ原创 2014-11-08 17:13:33 · 817 阅读 · 0 评论 -
HDU 2686 Matrix 3376 Matrix Again(费用流)
HDU 2686 Matrix题目链接3376 Matrix Again题目链接题意:这两题是一样的,只是数据范围不一样,都是一个矩阵,从左上角走到右下角在从右下角走到左上角能得到最大价值思路:拆点,建图,然后跑费用流即可,不过HDU3376这题,极限情况是300W条边,然后卡时间过了2333代码:#include #include #i原创 2014-11-09 10:47:56 · 887 阅读 · 0 评论 -
UVA 10779 - Collectors Problem(网络流)
UVA 10779 - Collectors Problem题目链接题意:每个人有一种贴图,现在第0个人要去和别人交换贴图,来保证自己的贴图尽量多,只有别人没有该种贴图,并且自己有2张以上另一种贴图才会换,问最多有几张贴图思路:最大流,关键在于如何建模,把0号人和物品连边,容量为有的容量,然后其他人如果物品等于0的,连一条边从物品到这个人,表示能交换,然后如果物品大于1的,原创 2014-09-18 16:19:12 · 1246 阅读 · 0 评论 -
UVA 11248 - Frequency Hopping(网络流)
UVA 11248 - Frequency Hopping题目链接题意:给定一个网络,现在需要从1到N运输流量C,问是否可能,如果可能输出可能,如果不可能,再问是否能通过扩大一条边的容量使得可能,如果可以输出这些边(按u先排再按v排),如果不行输出不可能思路:先做一遍网络流,然后每次在最小割上进行增加容量,需要两个优化,每次找流量找到>= c就可以了,然后每次修改容量,可以原创 2014-09-18 14:50:03 · 1066 阅读 · 0 评论 -
UVA 11082 - Matrix Decompressing(网络流+行列模型)
UVA 11082 - Matrix Decompressing题目链接题意:给定一个矩阵每行每列的和,要求现在构造一个矩阵满足元素在1-20之间,行列和满足条件思路:行列建图,源点连到每个行,容量为和,每列连到汇点,容量为和,每行连到每列,容量20,注意这题要求的是1-20,所以可以先把所有位置-1,最后输出的时候+1即可代码:#include #inc原创 2014-09-04 16:32:50 · 1947 阅读 · 0 评论 -
UVA 10806 - Dijkstra, Dijkstra.(费用流)
Problem ?Dijkstra, Dijkstra.Time Limit: 10 secondsDexter: "You don't understand. I can't walk...they've tied my shoelaces together."Topper Harley: "A knot. Bastards!"Jim Ab原创 2013-12-05 20:59:12 · 989 阅读 · 0 评论 -
fzu 2039 Pets(网络流)
Problem DescriptionAre you interested in pets? There is a very famous pets shop in the center of the ACM city. There are totally m pets in the shop, numbered from 1 to m. One day, there are n cust原创 2013-12-12 13:33:29 · 1134 阅读 · 0 评论 -
fzu 2038 Another Postman Problem(dfs)
Problem DescriptionChinese Postman Problem is a very famous hard problem in graph theory. The problem is to find a shortest closed path or circuit that visits every edge of a (connected) undirecte原创 2013-12-12 14:06:45 · 1295 阅读 · 0 评论 -
UVA 10594 - Data Flow(费用流)
Problem FData FlowTime Limit5 Seconds In the latest Lab of IIUC, it requires to send huge amount of data from the local server to the terminal server. The lab setup原创 2013-12-03 21:25:22 · 1123 阅读 · 0 评论 -
UVA 563 - Crimewave(最大流)
Crimewave Nieuw Knollendam is a very modern town. This becomes clear already when looking at the layout of its map, which is just a rectangular grid of streets and avenues. Being an impo原创 2013-12-03 19:44:06 · 1165 阅读 · 0 评论 -
UVA 11045 My T-shirt suits me(网络流)
My T-shirt suits me Our friend Victor participates as an instructor in an environmental volunteer program. His boss asked Victor to distribute N T-shirts to M volunteers, one T-shirt e原创 2013-12-02 15:48:14 · 1834 阅读 · 0 评论 -
UVA 753 - A Plug for UNIX(网络流)
A Plug for UNIX You are in charge of setting up the press room for the inaugural meeting of the United Nations Internet eXecutive (UNIX), which has an international mandate to make the f原创 2013-12-02 20:06:31 · 1233 阅读 · 0 评论 -
10330 - Power Transmission (最大流)
Power Transmission The ProblemDESA is taking a new project to transfer power. Power is generated by the newly established plant in Barisal. The main aim of this project is to transfe原创 2013-12-02 14:29:14 · 1239 阅读 · 0 评论