网络流
左佥都御史
这个作者很懒,什么都没留下…
展开
-
Gym - 101196I-sap+网络流建图
感觉和food题差不多,虽然比赛的时候仍然没有写出来。。 具体要求是先来个 n,m,p n是小朋友的个数,先来n行 每行第一个是i小朋友喜欢多少种糖,后面是种类。 然后是p个包裹 里面包含有多少种糖 重点来了 Toys can be in at most one category and any toy not listed in these p lines is not in an原创 2017-03-28 22:11:07 · 307 阅读 · 0 评论 -
hdu4975--dinic算法(1)
好像还能用isap和矩阵dp的,不过我没咋闹明白isap,分层能看懂后面就完全看不懂了,等今天晚上看懂了在写一个用isap做这道题的方法。嗯,立flag; 题意:给出 行数m和列数n,和各行各列的和,求这个矩阵可能的排列,不同的结果不同的输出,我都写到注释上面了。 方法:dinic,就是ek算法的增强版,先以源点为0,然后对整个网络进行分层,一层一层的分,分完层在进行dfs,跑一个while,不原创 2017-03-23 16:56:35 · 327 阅读 · 0 评论 -
hdu4619-网络流-最大独立集-或者是二分图
题意: 给定m,n,下面是m个棍子的横坐标,(题目中可能不是棍子是扑克,不过差不多),这种棍子只能横着放,即占用 x,y 和 x+1,y; 下面是n个竖着放置的棍子,只占用 x,y 和x,y+1;(不能往下啊) ,问可以去掉一些棍子,最大有多少棍子没有重叠。 一开始以为是水题,后来就是各种wa,我也想不到是网络流,后来写了一个dinic,也是错误百出。 错误1 没有把vector给初始化。原创 2017-04-06 16:12:51 · 278 阅读 · 0 评论 -
HDU-5520-最小费用最大流
https://vjudge.net/contest/166969#problem/L 第一次写这种题。。 感觉还是很巧妙的。先求得花费最小的增广路,然后在进行增广路径。#include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <cstring>/*这道题主要是求,一个花费。可以知道是原创 2017-06-16 18:36:32 · 412 阅读 · 0 评论 -
计蒜客-乌鲁木齐网络赛&费用流&拆点-Our Journey of Dalian Ends
https://nanti.jisuanke.com/t/16959 给定一个图,问你从 西安出发,经过上海,到达大连,最小的花费是多少。要求每一个城市只能经过一次。。 一直在想能不能改dij。。。 正确思路:建立一个网络流&拆点。s连接 西安和大连的入点,上海的拆点连接 上海。跑一遍费用流。 注意 每个边都是可以过好多次的,所以边的权为inf。。 但是每个点只能跑一次,所以点的是1.#i原创 2017-09-13 15:30:52 · 207 阅读 · 0 评论 -
Gym - 101490J-思维|网络流|匈牙利-Programming Tutors
https://vjudge.net/problem/Gym-101490J 写法好多。网络流和匈牙利也得补了。 给定2*m个点,问你求 1-m 为老师,m+1-2*m为学生。 给你他们的 二维坐标,让他们两两匹配,问你他们之间距离最大值的最小值。 思路:先以老师为主,存一张二维表,然后排和每个老师 和最近学生的距离,放到一个vector里,排序,这些距离从小到大找,把用过的学生标记掉。原创 2017-09-24 20:03:48 · 349 阅读 · 0 评论 -
hdu6214-最小割边数&最大流最小割-Smallest Minimum Cut
http://acm.hdu.edu.cn/showproblem.php?pid=6214 建边的时候每条边权 w = w * (E + 1) + 1; 这样得到最大流 maxflow / (E + 1) ,最少割边数 maxflow % (E + 1) 道理很简单,如果原先两类割边都是最小割,那么求出的最大流相等 但边权变换后只有边数小的才是最小割了 大佬的解释: 乘(E+1)是为了原创 2017-09-19 06:41:51 · 555 阅读 · 0 评论 -
poj2135-费用流&费用流模板-Farm Tour
https://vjudge.net/problem/POJ-2135 给定n个点。有m个路相互连接 要求从1出发,到达m,在从m回来,要求花费最小。并且不能通过相同的路径。 方法:设置边权的size为1,建立一个 超级源点和 超级会点。 超级源点到1 size为2. 超级汇点到 msize为2. 然后跑一次费用流。。。 这个以后用来测试板子。。#include <iostream>原创 2017-09-12 21:35:55 · 332 阅读 · 0 评论