
网络流24题
verdin黄大锤
afo啦!
展开
-
洛谷 P2765 魔术球问题 (网络流24题)
题目:魔术球问题思路:听说这题答案的范围很小。听说从1开始枚举答案大小不会超时。然后我就枚举答案了。假设答案为m,就对于m个数,每个数暴力的寻找可以可以放在它下面的数再建边。由于只有可能上面的点指向下面的点,所以这张图不存在环,可见是一张二分图。然后从m开始跑一遍匈牙利算法看看能否求出增广路,如果不能,则说明无法对m进行匹配,则需要再加一根柱子放m。当柱子的数量大于n时,就说明m-...原创 2018-09-26 21:57:48 · 371 阅读 · 0 评论 -
洛谷 P2774 方格取数问题
题目:方格取数问题思路:将点集拆成两部分,使得这两部分没有公共边。根据这个建图,求二分图最大独立集,也就是总权值-最小割。代码:#include<bits/stdc++.h>using namespace std;#define maxn 10000#define read(x) scanf("%d",&x)#define inf (int)1e9s...原创 2019-03-04 16:08:30 · 259 阅读 · 0 评论 -
洛谷 P2763 试题库问题 (网络流24题)
题目:试题库问题思路:源点S向所有试题连边,边权为1。所有试题向对应的类型连边,权为1。所有类型向汇点T连边,权为需要的试题数量。跑最大流并输出路径即可。代码:#include<bits/stdc++.h>using namespace std;#define maxk 20#define maxn 1000#define maxm 100000#define...原创 2019-02-27 13:44:36 · 249 阅读 · 0 评论 -
洛谷 P2766 最长不下降子序列问题(网络流24题)
题目:最长不下降子序列问题思路:第一问,O(n2)O(n^2)O(n2)求LIS即可。处理出f[i]f[i]f[i]表示以i开头的不下降子序列个数,得出答案记为k。第二问,先拆点,把一个点xxx拆成(x,0)(x,0)(x,0)和(x,1)(x,1)(x,1),并把两者连边。设置一个原点S和汇点T。把S和所有f[i]==1f[i]==1f[i]==1的点连边,把所有f[i]==kf[...原创 2019-02-26 20:53:31 · 303 阅读 · 0 评论 -
洛谷 P1251 餐巾计划问题 (网络流24题)
题目:餐巾计划问题思路:拆点,每天拆成收到干净餐巾和送出脏餐巾两部分。把源点和送餐巾的点连边,收到餐巾的点和汇点连边,皆是流量w,费用f。把每一天收到餐巾和送出餐巾年连边,流量inf,费用0。再按照洗和买的条件连边。跑费用流即可。代码:#include<bits/stdc++.h>using namespace std;#define maxn 5000#def...原创 2019-03-05 17:48:47 · 204 阅读 · 0 评论 -
洛谷 P3254 圆桌问题 (网络流24题)
题目:圆桌问题思路:贪心,优先考虑人数多的团体,优先放在人数多的桌子上。如果不嫌麻烦考虑网络流做法,只需把起点和所有团体连人数的边,团体和桌子连1,桌子和汇点连容量边跑最大流就好。美丽的贪心代码:#include<bits/stdc++.h>using namespace std;#define maxn 300#define read(x) scanf("%d",&...原创 2019-02-25 22:12:47 · 261 阅读 · 0 评论 -
洛谷 P2762 太空飞行计划问题 (网络流24题)
题目:太空飞行计划问题思路:把所有的实验和s连边,权值为实验的费用;把所有的材料和t连边,权值为材料的费用;再把实验和对应的材料连边,权值为inf。求一遍最小割,输出下路径。注意一下,最小割的路径和最大流不同。一条边被割裂的条件,是一端与s相连,另一端不与s相连,即d值一个为0,一个非0。代码:#include<bits/stdc++.h>using namespa...原创 2019-02-25 18:10:25 · 397 阅读 · 0 评论 -
网络流24题
这是一个目录序号标题题解1飞行员配对方案问题二分图匹配2太空飞行计划问题3最小路径覆盖问题拆点,二分图匹配4魔术球问题二分图匹配路径查找5圆桌问题6最长递增子序列问题7试题库问题8机器人路径规划问题9方格取数问题10 餐巾计划问题11 航空路线问题1...原创 2019-02-21 14:26:26 · 195 阅读 · 0 评论 -
洛谷 P3355 骑士共存问题 (网络流24题)
题目:骑士共存问题思路: 听说这题是最大流 / 最小割 (不会啊) 画个图可以知道,根据互相能到达的关系建图,不存在奇环,即这个图是二分图。 然后求不能互相攻击的骑士数量也就是求这张图的最大独立集。 所以答案就等于 节点数 - 障碍数 - 最大匹配数。代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;#define...原创 2018-09-13 16:12:05 · 234 阅读 · 0 评论 -
洛谷 P2756 飞行员配对方案问题(网络流24题)
题目:飞行员配对方案问题思路:二分图匹配。代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define maxn 100#define read(x) scanf("%d",&amp;x);int m,n;vector&lt;int&gt; g[maxn+5];int match[maxn原创 2018-09-19 21:34:12 · 220 阅读 · 0 评论 -
洛谷 P2764 最小路径覆盖问题 (网络流24题)
题目:最小路径覆盖问题思路:把每个点拆成两个点,其中一个作为入点,另一个作为出点。然后对于这个二分图求最大匹配输出。之前因为int没加返回值,系统开了O2优化RE了好久QAQ……代码:#pragma GCC optimize(2)#include&lt;bits/stdc++.h&gt;using namespace std;#define maxn 150#define m...原创 2018-09-25 21:49:10 · 267 阅读 · 0 评论 -
洛谷 P2770 航空路线问题
题目:航空路线问题思路:按每个点拆成xix_ixi和yiy_iyi,并从yiy_iyi向xix_ixi连一条流量为1费用为0的边。由S向x1x_1x1连一条流量为2费用为0的边,由yny_nyn向T也连一条流量为2费用为0的边。再根据到达关系,把每个xux_uxu和yvy_vyv间连一条流量为1费用为-1的边(由于求的是最大费用,所以设费用为-1)。然后在图上求一下最小费...原创 2019-03-10 16:44:57 · 222 阅读 · 0 评论