
网络流(二分图)
昵称很长很长真是太好了
这个作者很懒,什么都没留下…
展开
-
[SCOI2007]蜥蜴 (网格图经典四方向建边)
题意: 在一个n*m的矩阵中,每个格子都有一定的高度,当高度为0时表示该格子不存在,现在这个矩阵中有若干只蜥蜴,每只蜥蜴跳到格子上时,该格子的高度会减一,每只蜥蜴可以跳跃直线距离不大于D的长度,问最少有几只蜥蜴无法逃离 题解: 网络流网格建图。 网格一半来说就是拆点建图,因为权值在点上了qwq。 这个题目的话如何想到拆点呢? 其实是因为每跳一次这个格子就降低一下,这决定了可以有几只蜥蜴从这上面经过。(毕竟不会有zz在一个点上跳来跳去) 然后就是如何建图了。 考虑到这个图只有20*20的范围。 窝门设一个点的原创 2021-05-12 15:35:56 · 160 阅读 · 1 评论 -
P2764 最小路径覆盖问题 网络流输出方案
题意: 求DAG的最小路径覆盖并输出方案。所谓最小路径覆盖是指,将原图分为若干条路径,任意两条路径不能有公共点,要使路径数量尽可能少。 最小路径覆盖,emmm好像跟最少边覆盖差不多。但这俩确实不是一个东西。 最小边覆盖:边数最小的边覆盖集称为最小边覆盖,通俗地讲,就是极小边覆盖中的最小的一个集合。 最小边覆盖在二分图中的应用:最小边覆盖 = 最大独立集 = n - 最大匹配,这个是二分图上的一个性质。 两个很小的点:必须要求原图为二分图;边覆盖集中可能有多条边覆盖同一个顶点,其实可以这条边说是为了覆盖另一原创 2021-05-10 22:57:36 · 344 阅读 · 0 评论 -
Food HDU - 4292 网络流
题意: 有n个人,f种食物和d种饮料,每种饮料和食物的个数已知,假设一个人拿到一个自己喜欢的食物或饮料,那个人就会感到满足。 最多能有几个人满足? 思路:拆点建图。 一个人必须又要饮料又要食物,假设我们直接用食物和饮料把一个人连接起来,是无法保证每个人只会给一组食物饮料的,有可能会出现很多组食物和饮料通过着一个人经过的情况。 所以我们把点转化成边进行限制,让边的流量为1,这样就可以每个人只吃一组食物饮料了。 图如下所建。 /*Keep on going Never give up*/ #pragma GC原创 2021-01-25 14:49:40 · 136 阅读 · 0 评论