网络流
Zookkk
这个作者很懒,什么都没留下…
展开
-
2016青岛区域赛G题 Coding Contest 费用流
题意:给n个点,每个点上有x个人和y份食物,给m条边,每条边有走断的概率,不过第一次走是不会断的,点上的人可以通过边来移动,问你让所有人吃上饭破坏边的最小概率思路:求破坏边的最小概率可以转换成不破坏边的最大概率,考虑到精度问题,我们通过对数运算把乘法转换成加法,设置一个超级源点和一个超级汇点,然后跑一遍最小费用最大流即可,注意使用eps精度修正代码:#include<bits/...原创 2019-11-01 19:46:05 · 241 阅读 · 0 评论 -
牛客 Birthday 费用流
为了写这道题去学了最大流EK算法,dinic算法,Spfa最小费用流算法,自己好菜,居然还能这样建图思路:将n根蜡烛抽象化n个点,将m个区域抽象为m个点,设一个0号点作为源点,连接n根蜡烛,然后通过题目给出的ai和bi建立蜡烛与区域之间的边,然后m个区域,每个区域都有n条边连向汇点,跑一遍最小费用流即可,最大流提供了反向边给程序一次反悔的机会,并且spfa每次必定能搜索完其所有通路,所以该思路...原创 2019-05-09 19:10:34 · 365 阅读 · 0 评论 -
费用流模板
费用流一般是指最小费用最大流,即保证最大流的情况下争取费用最小,所以把EK最大流的算法边权换成费用,bfs换成spfa就行,需要注意的是加反向边的时候,容量应该是0,费用应该是正向边的相反数。#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn=5e3+9;struc...原创 2019-05-09 19:23:10 · 186 阅读 · 0 评论 -
网络流最大流模板(EK,dinic)
网络流算法主要用于解决给定一个容量网络和源点,汇点,求最大可通行流量的问题增广路:源点到汇点的一条通路。最大流问题其实就是不断找增广路的问题,我们不断找增广路,直到图中已经没有增广路的时候我们就找到了最大流,需要注意的是我们找到的增广路可能并不是最大流中的增广路,并且由于这一条增广路占用了一些边的容量,所以我们无法正确求得最大流,解决的办法就是给每条边加一个反向边,反向边的作用就相当于给了...原创 2019-05-09 19:36:42 · 355 阅读 · 0 评论