随笔分类 - 图论---网络流
摘要:传送门 "BZOJ" <! more Solution 显然这是一个最大权闭合子图的问题,所以你把图建出来跑网络流就是$50pts$. 接着你旋转坐标系然后把这个转换成为一个贪心替换网络流的问题,然后就是一个$set$的事了. 代码实现
阅读全文
摘要:网络流总结 是时候来一份不完美的网络流总结了! $\texttt{HNOI2019 Must be Win}$ emmm,又到了一年一度的总结时间了.$Tham$要我们搞自己的计划,我就先把网络流搞完了? 大致写一下总结供复习吧. 最大流 这个要是不会就退组吧. emmm,建议Dinic(拓展性较大
阅读全文
摘要:题面 "传送门" Solution 看到什么最大值最小肯定二分啊。 check直接跑一个二分图匹配就好了。 orz ztl!!! 代码实现
阅读全文
摘要:传送门 "洛谷" Solution 这是一道神仙题! 考虑这个东西是个啥。 emmm,如果两个点要到达,一定不能经过比他们大的。 所以Floyd搞定两点距离然后费用流跑一遍就是答案了! 代码实现 cpp / mail: mleautomaton@foxmail.com author: MLEAuto
阅读全文
摘要:传送门 "洛谷" Solution 考虑和happiness一个套路,新建一个点然后连边就好了。 代码实现
阅读全文
摘要:传送门 "洛谷" Solution 直接跑最小割板子就好了。 代码实现 cpp include include include include include include include include include using namespace std; define ll long lo
阅读全文
摘要:传送门 "洛谷" Solution 比较巧妙啊! 考虑这个只有同意和不统一两种,所以直接令$s$表示选,$t$表示不选,然后在朋友直接建双向边就好了。 代码实现 cpp include using namespace std; const int N=500010,Inf=1e9+10; int f
阅读全文
摘要:传送门 "洛谷" Solution 考虑把每一个修车工人拆成$n$个点,那么考虑令$id(i,j)$为第$i$个工人倒数第$j$次修车。 然后就可以直接跑费用流了!!! 代码实现 cpp / mail: mleautomaton@foxmail.com author: MLEAutoMaton Th
阅读全文
摘要:大家可以先看这道题目再做! "SCOI2007修车" 传送门 "洛谷" Solution 就和上面那道题目一样的套路,但是发现你会获得60~80分的好成绩!!! 考虑优化,因为是SPFA,所以每一次只会走最短路,做完之后发现。。。 欸,好像每一次会搞掉一条边,那么我们动态加入点就好了。 代码实现 c
阅读全文
摘要:传送门 "洛谷" Solution 大致思想同 "这个——洛谷1231" 代码实现 cpp include using namespace std; const int N=500010,Inf=1e9+10; int front[N],cnt,s,t,n; struct node { int to
阅读全文
摘要:传送门 "洛谷" Solution 这是一个比较实用的套路,很多题目都有用,而且这个套路难以口胡出来。 考虑把每一个附加贡献重新建一个点,然后向必需的点连边,流量为val。 然后直接种植的从源点向这个点连,流量为val。 最后跑一个最小割就可以了。 代码实现 cpp include using na
阅读全文
摘要:传送门 "洛谷" Solution emmm,直接对于每一个点拆点就好了。 然后边连Inf,点连1,跑最小割就是答案。 代码实现 cpp include using namespace std; const int N=100010,Inf=1e9+10; int front[N],cnt,s,t,
阅读全文
摘要:传送门 "洛谷" Solution 考虑一本书最多用一次,所以拆点。 其他的答案、练习册与书本的限制直接连1的边就好了。 最后跑出来的最大流就是答案。 代码实现 cpp include using namespace std; const int N=100010,Inf=1e9+10; int f
阅读全文
摘要:前言 摆王兴致冲冲地跑到我们机房来对我说跟你讲一个黑科技。。。 Dinic的神奇优化 Dinic优化 我们发现如果Dinic不建反向边会跑的飞起(当然Wa是必然的) 所以考虑在加反向边的基础上优化. 首先我们记录网络中最大的一个流量,设它为Min,然后: 1. 把所有小于Min的边都加入网络中 2.
阅读全文
摘要:有很浓厚的熟悉感?餐巾计划问题? 不就是多了几个医院,相当于快洗部和慢洗部开了分店. 考虑建图: 如果把每一天拆成两个点,一个表示需求,另一个表示拥有的话. 显然就是一个两边的图,考虑如果我现在有人,但是可以不用,显然可以向后面一天传递. 如果我死了人,要救活,显然是需求向拥有连边. 然后就差不多了
阅读全文
摘要:Solution 考虑一下这个东西的模型转换: $\frac{\sum_{i=1}^n{a_i}}{\sum_{i=1}^n{b_i}}$ 然后转换一下发现显然是01分数规划。 $\sum_{i=1}^n{b_i} mid\leq \sum_{i=1}^n{a_i}$ 然后再移项: $0 \leq
阅读全文
摘要:前言 这一个Task被神仙们吊着打。 Solution 考虑对于每一个(i,j)显然(i,j 1)和(i+1,j)都是要选的,然后连边。 再一看,最大权闭合子图? ~~我去,FAQ~~ 直接跑网络流最小割。。。 代码实现
阅读全文
摘要:前言 为什么他们能够切的那么快啊。 Solution 虽然我不会怎么区分最大流和最小费用最大流,但是最大流可以看成最小割,这样子就好区分一些。 考虑这个东西相当于是二分图求一个最小割,直接Dinic套上去就好了。
阅读全文
摘要:前言 网络流24题怎么这么难做啊。 Solution 考虑这是一个二分图,按照给出的图发现黄色不能攻击黄色,红色不能攻击红色。 然后就是一个裸的二分图求最小割,直接跑Dinic就好了,无脑实现。 cpp include include include include include include
阅读全文