Dinic(模板 再错是不可能的 这辈子都不可能了)
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<map>
- #include<set>
- #include<vector>
- #include<cstdlib>
- #include<string>
- typedef long long ll;
- typedef unsigned long long LL;
- using namespace std;
- const int INF=0x3f3f3f3f;
- const double pi=acos(-1.0);
- const double eps=0.00000001;
- const int N=60100;
- struct node{
- int to,next;
- int flow;
- }edge[N*10];
- int head[N];
- int dis[N];
- int tot;
- void init(){
- memset(head,-1,sizeof(head));
- tot=0;
- }
- void add(int u,int v,int flow){
- edge[tot].to=v;
- edge[tot].flow=flow;
- edge[tot].next=head[u];
- head[u]=tot++;
- edge[tot].to=u;
- edge[tot].flow=0;
- edge[tot].next=head[v];
- head[v]=tot++;
- }
- int BFS(int s,int t){
- queue<int>q;
- memset(dis,-1,sizeof(dis));
- q.push(s);
- dis[s]=0;
- while(q.empty()==0){
- int u=q.front();
- q.pop();
- for(int i=head[u];i!=-1;i=edge[i].next){
- int v=edge[i].to;
- if(dis[v]==-1&&edge[i].flow){
- dis[v]=dis[u]+1;
- q.push(v);
- }
- }
- }
- if(dis[t]==-1)return 0;
- return 1;
- }
- int DFS(int s,int t,int flow){
- if(s==t)return flow;
- int ans=0;
- for(int i=head[s];i!=-1;i=edge[i].next){
- int v=edge[i].to;
- if(edge[i].flow&&dis[v]==dis[s]+1){
- int f=DFS(v,t,min(flow-ans,edge[i].flow));
- edge[i].flow=edge[i].flow-f;
- edge[i^1].flow=edge[i^1].flow+f;
- ans=ans+f;
- if(flow==ans)return flow;
- }
- }
- if(ans==0)dis[s]=-1;
- return ans;
- }
- int Dinc(int s,int t){
- int flow=0;
- while(BFS(s,t)){
- flow+=DFS(s,t,INF);
- }
- return flow;
- }
不再作死了
Dinic(模板 再错是不可能的 这辈子都不可能了)的更多相关文章
- hdu 1532 Dinic模板(小白书)
hdu1532 输入n,m. n条边,m个点,之后给出a到b的容量,求1到m的最大流. 注意:Dinic只能调用一次,因为原理是改变cap的值,如果调用多次一样的,那么第一次会对,其余的都会是0,因为 ...
- 最大流算法 ISAP 模板 和 Dinic模板
ISAP // UVa11248 Frequency Hopping:使用ISAP算法,加优化 // Rujia Liu struct Edge { int from, to, cap, flow; ...
- POJ 1273 Drainage Ditches (网络流Dinic模板)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- 洛谷P3376【模板】网络最大流 Dinic模板
之前的Dinic模板照着刘汝佳写的vector然后十分鬼畜跑得奇慢无比,虽然别人这样写也没慢多少但是自己的就是令人捉急. 改成邻接表之后快了三倍,虽然还是比较慢但是自己比较满意了.虽然一开始ecnt从 ...
- [Selenium]等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的
等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的 /** * Check if the element present with cu ...
- SMW0上传EXCEL模板时报错无分配给对象***的MIME类型
在使用SMW0上传照片.声音文件.EXCEL模板等文件时,遇到报错提示,如下图所示: 解决办法:需要先维护 .XLS 文件的MIME TYPE,SMW0 打开如下图所示 选择上图红色框中“WebRFC ...
- freemarker解析模板报错问题
在确定模板文件代码无误的情况下,导致报错的原因大概有以下原因: 模板文件编码改变了(比如eclipse中的项目部署到tomcat下,而忘记设置tomcat编码就会导致读取模板文件编码不正确,导致程序解 ...
- 【网络流#3】hdu 1532 - Dinic模板题
输入为m,n表示m条边,n个结点 记下来m行,每行三个数,x,y,c表示x到y的边流量最大为c 这道题的模板来自于网络 http://blog.csdn.net/sprintfwater/articl ...
- 最大流当前弧优化Dinic模板
最大流模板: 普通最大流 无向图限制:将无向图的边拆成2条方向相反的边 无源汇点有最小流限制的最大流:理解为水管流量形成循环,每根水管有流量限制,并且流入量等于流出量 有源汇点的最小流限制的最大流 顶 ...
随机推荐
- uva 1592 Database (STL)
题意: 给出n行m列共n*m个字符串,问有没有在不同行r1,r2,有不同列c1,c2相同.即(r1,c1) = (r2,c1);(r1,c2) = (r2,c2); 如 2 3 123,456,789 ...
- HDU 4948 (傻比图论)
Kingdom Problem Description Teacher Mai has a kingdom consisting of n cities. He has planned the tra ...
- Floyd算法——保存路径——输出路径 HDU1385
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1385 参考 http://blog.csdn.net/shuangde800/article/deta ...
- JAVA分布式架构
- ArcGIS for Android入门程序之DrawTool2.0
来自:http://blog.csdn.net/arcgis_mobile/article/details/8084763 GISpace博客<ArcGIS for Android入门程序之Dr ...
- ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新
ArcGIS Engine效率探究——要素的添加和删除.属性的读取和更新 来自:http://blog.csdn.net/freewaywalker/article/details/23703863 ...
- 学习swift从青铜到王者之字符串和运算符02
1 字符和字符串初步 var c :Character = "a" 2 构造字符串 let str1 = "hello" let str2 = " ...
- hibernate之多对一单向关联
一个工作组(Group)里能够有多个用户(User),一个User仅仅属于一个Group,这是典型的多对一的关系. 在多对一的关系中正确的数据库设计是在多的这方(在这里是User这方)加一个Group ...
- [php learn] php 从头開始学习1
前言:大概在2006年的时候,学习过一段时间的php.而且当时做了一个下载的站点,后来因为读研究生阶段用的是java.j2ee相关,所以php就搁浅掉了,php这些年也发生了非常大的变化,最大一个变化 ...
- java中关于'&&'、'||'混合运算优先级问题小结
package com.per.sdg.operator; /** * 结论:先进行'&&'运算,在进行'||'运算 * @author sundg * */ public class ...