
网络流
文章平均质量分 56
范艺杰
这个作者很懒,什么都没留下…
展开
-
51nod1336 RMQ逆问题
题目题目链接解题思路首先将区间离散化,求每一块区间的最大值。对于出现过的值,只能出现在所有存在区间的交集中,且只能存在于交集中最大值比它要大的区间。对于没有出现过的值,能像所有区间最大值大小比他小的区间存放。如此就是个匹配问题,看二分图是否慢流即可。如果加上线段树建图优化,m可能可以出到100000。代码#include <cstdio>#include <algorithm>#include <cstring>#include <vect原创 2021-03-31 12:14:45 · 121 阅读 · 0 评论 -
51nod2936 圈地计划
题目题目链接解题思路首先,考虑如果求的是最小的收益。 那么是一个非常明显的最小割模型。我们将源点连向每个点(i,j)(i,j)(i,j),流量是a[i][j]a[i][j]a[i][j]。每个点(i,j)(i,j)(i,j)向汇点连边,流量是b[i][j]b[i][j]b[i][j]。将每个点向相邻点连容量容量为ccc的边。如果相邻点建立的不同,则必定割之间相连的边。如果能够解决。考虑最大的收益。 我们将所有的权值加起来,如果能建立最小割模型,用总权值减去最小割即可。但是难点在于构建相同建筑时,需原创 2021-03-18 14:21:06 · 132 阅读 · 0 评论 -
51nod2938 寿司餐厅
题目题目链接解题思路前置知识 :最大全闭合子图不了解的可以先自行学习一下,这里简略的讲一下最大权闭合子图算法解决的问题。最大权闭合子图大概讲的是求一种依赖图的最大权值。如果一个点选了,那么它的依赖点也必须选。让你一个满足依赖关系的子集,使得权值最大。依赖图的建立首先如果种类为x的寿司吃了c(c>0)c(c>0)c(c>0)个,要付出的代价是mx2+cxmx^2 + cxmx2+cx。我们建立一个种类节点,这个节点的代价是mx2mx^2mx2。每个种类为x的寿司向这个点建立原创 2021-03-18 11:40:48 · 112 阅读 · 0 评论 -
51nod2933 网络吞吐量
题目题目链接解题思路这是一道简单的二合一题。首先,题目说只能走最短路径。我们先求出1到所有点的最短路径,依此判断每条边是否是松弛边。其次,处理器有处理上限。我们将处理器拆成入端和出端,入端向出端连容量为处理能力的边,所有松弛边权值算无穷。对这个图跑最大流即可。代码#include <cstdio>#include <algorithm>#include <cstring>#include <vector>#include <que原创 2021-03-16 18:43:48 · 119 阅读 · 0 评论 -
51nod2856 Muddy Fields
题目题目链接题解首先应该注意,木板是可以交叉覆盖的。对于每个横向木板和纵向木板进行编号。我们发现对于一个坑而言,横向木板和纵向木板必须至少选一个。建立二分图,横向木板在左,纵向木板在右,对于每个坑而言,将其对应的横纵向木板连边。这样,这个问题转化成了图的最小点覆盖。根据定理可知,二分图的最小点覆盖等于最大匹配。代码#include <cstdio>#include <cstring>#include <algorithm>#include &l原创 2021-03-16 12:41:23 · 130 阅读 · 0 评论