网络流24题 题解

提前说明:虽然网络流24题中有很多可以不用网络流,但是为了rp,还是都用网络流做一遍吧!(除了真的不是网络流的题)此次题目顺序是按菜鸡syx的做题顺序(由易到难,差不多吧)排的

鉴于全是水题,所以代码是不可能重新写的,这辈子不可能重新写的。

「网络流 24 题」搭配飞行员

显然二分图吧

建一个源点S,一个汇点T

将S向1~n连边权为1的边,将n+1~n+m向T连边权为1的边,将每对u,v从u到v连2147483647的边,跑最大流,结束!(别忘记连反向边,虽然这个也没人会忘qwq)

code

「网络流 24 题」圆桌聚餐

对单位和桌子连1的边,将源点到桌子连桌子大小的边,将单位和汇点连单位人数的边,跑最大流挺显然的吧

code

「网络流 24 题」最小路径覆盖

经典的拆点思想吧,把一个点看成两个点,一个是作为“入点”,一个是它作为“出点”,对于每条有向边,根据定义(即拆点思想)连边,边权为1,还是将源点连所有的“入点”,将所有的

“出点”连向汇点,跑Max_Flow。但是,还剩下一个记录路径的问题,用used数组记录到过的“出点”,再扫一遍,如果used为0,则必是一条出边,再沿路径跑一边即可

code

「网络流 24 题」魔术球

这道sb题调了我半天,结果是没看到注:行末请不要输出空格!以免出现意料之外的错误!,太气人了!!!

如果ij的边,将点依次加入,直到路径最小覆盖大于柱子数量(记住,不能二分!!!)

顺便提一句:最大流有个很好的性质,就是它在残量网络上加点是不会影响它最大流的值的,所以直接加无所谓

对于此题的代码我丢个blog吧,我觉得我的代码太烦,他的较为简洁code

「网络流 24 题」最长递增子序列

此题随便搞吧……

第一问显然dp,后两问解法如下:

第二问:

拆点!又来了

对于\(f_i = 1\)将源点向i连边

对于\(f_i = ans\)\(i^{'}\)向汇点连一条边

对于\(i,将\(i^{'}\)向j连一条边

将每个\(i\)\(i^{'}\)连一条边

流量全为1,跑最大流

第三问:

在第二问的建图中修改些许,即将源点->1,1->\(1^{'}\)\(n\)->\(n^{'}\)\(n_{'}\)->T连大小为∞的边,跑最大流即可(注意特判n=1)的情况

code

「网络流 24 题」方格取数

垃圾题,不想写题解了qwq

这道题,我tm犯了最sb的错误————

1. cnt没赋成1

2. 反向边的值打成正向边的值了

还是老了,不行了

给个code吧

code

你可能感兴趣的:(网络流24题 题解)