Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9ebd9f6

Browse files
2 parents b2aa423 + 71381bb commit 9ebd9f6

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

‎Library/Grafos/MinCostMaxFlow.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
using namespace std;
33
#define ll long long
44

5-
struct Aresta {
5+
struct Edge {
66
int u, v; ll cap, cost;
7-
Aresta(int u, int v, ll cap, ll cost) : u(u), v(v), cap(cap), cost(cost) {}
7+
Edge(int u, int v, ll cap, ll cost) : u(u), v(v), cap(cap), cost(cost) {}
88
};
99

1010
struct MCMF {
1111
const ll INF = numeric_limits<ll>::max();
12-
int n, source, sink;
12+
int n, src, snk;
1313
vector<vector<int>> adj;
14-
vector<Aresta> edges;
14+
vector<Edge> edges;
1515
vector<ll> dist, pot;
1616
vector<int> from;
1717

18-
MCMF(int n, int source, int sink) : n(n), source(source), sink(sink) { adj.resize(n); pot.resize(n); }
18+
MCMF(int n, int src, int snk) : n(n), src(src), snk(snk) { adj.resize(n); pot.resize(n); }
1919

20-
void addAresta(int u, int v, ll cap, ll cost){
20+
void addEdge(int u, int v, ll cap, ll cost){
2121
adj[u].push_back(edges.size());
2222
edges.emplace_back(u, v, cap, cost);
2323

@@ -32,8 +32,8 @@ struct MCMF {
3232
from.assign(n, -1);
3333
vis.assign(n, false);
3434

35-
q.push(source);
36-
dist[source] = 0;
35+
q.push(src);
36+
dist[src] = 0;
3737

3838
while(!q.empty()){
3939
int u = q.front();
@@ -58,17 +58,17 @@ struct MCMF {
5858
if(dist[u] < INF)
5959
pot[u] += dist[u];
6060

61-
return dist[sink] < INF;
61+
return dist[snk] < INF;
6262
}
6363

6464
pair<ll, ll> augment(){
65-
ll flow = edges[from[sink]].cap, cost = 0; //fixed flow: flow = min(flow, remainder)
65+
ll flow = edges[from[snk]].cap, cost = 0; //fixed flow: flow = min(flow, remainder)
6666

67-
for(int v=sink; v != source; v = edges[from[v]].u)
67+
for(int v=snk; v != src; v = edges[from[v]].u)
6868
flow = min(flow, edges[from[v]].cap),
6969
cost += edges[from[v]].cost;
7070

71-
for(int v=sink; v != source; v = edges[from[v]].u)
71+
for(int v=snk; v != src; v = edges[from[v]].u)
7272
edges[from[v]].cap -= flow,
7373
edges[from[v]^1].cap += flow;
7474

@@ -87,4 +87,4 @@ struct MCMF {
8787
}
8888
return {flow, cost};
8989
}
90-
};
90+
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /