最大ネットワークストリームDinicアルゴリズム(最適化版)


/*
  Name:      Dinic  (   ) 
  Copyright: 
  Author:     
  Date: 10-06-17 22:08
  Description:    Dinic  。
             ,           。
          ,        ,                  ,        ;
                        ,       。
                       。  
*/

#include  
#include 
  
using namespace std;  
  
const int MAXV=2000;   //         
const int MAXE=2000;   //       
const int INFINITY = 0x7fffffff;   //      
int capacity[MAXV][MAXV]; //           
int flow[MAXV];  //                      
int pre[MAXV];  //               ,               
int dis[MAXV]; //          
int block[MAXV]; //            
  
int MaxFlow_Dinic(int src, int des, int n);  
bool BFS(int src, int des, int n); //              
int DFS(int src, int des, int n, int v);//             
  
int main()  
{ 
    int  m, n, u, v;  
    ifstream fcin("maxflow.txt");
    
    if (!fcin.is_open())
    {
        cout << "Error opening file"; exit (1);
    }
  
    fcin >> n >> m;
   
    for(int i=0; i> u >> v;  
        fcin >> capacity[u][v];      
    }  
    
    cout << n << " " << m << endl;
    for (int i=0; i