Program Listing for File FlowApplications.h
↰ Return to documentation for file (ADS/graph/FlowApplications.h)
/*--------------------------------------------------------------------------*/
/*------------------------ File FlowApplications.h -------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_FlowApplications
#define __ADS_FlowApplications
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include "ADS/graph/Graph.h"
#include "ADS/graph/MaxFlow.h"
#include <algorithm>
#include <cstddef>
#include <limits>
#include <map>
#include <utility>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
enum class CapacityDecrease {
SLACK ,
CYCLE ,
PATH
};
/*--------------------------------------------------------------------------*/
/*------------------------------- FUNCTIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
template< Graph G >
std::vector< std::vector< int > > edgeDisjointPaths(
const G & g , int s , int t ,
long long k = std::numeric_limits< long long >::max() );
template< class T >
CapacityDecrease decreaseCapacity( std::vector< std::vector< T > > & c ,
std::vector< std::vector< T > > & f ,
int s , int t , int u , int v );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/graph/impl/FlowApplications.tpp"
/*--------------------------------------------------------------------------*/
#endif /* FlowApplications.h included */
/*--------------------------------------------------------------------------*/
/*---------------------- End File FlowApplications.h -----------------------*/
/*--------------------------------------------------------------------------*/