Лабораторная работа по "Программированию"
Автор: poordota • Май 27, 2022 • Лабораторная работа • 941 Слов (4 Страниц) • 198 Просмотры
Частное учреждение образования
«Колледж бизнеса и права»
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ ОАиП №41
Т.095009
Руководитель практики А.В.Рогалевич
Учащийся Д.С.Капур
2022
[pic 1]
[pic 2]
[pic 3]
[pic 4]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 23 | 0 | 0 | 0 | 0 |
1 | 89 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 71 | 42 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 33 | 0 |
4 | 0 | 0 | 56 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 10 | 0 | 0 | 0 | 0 | 37 |
6 | 0 | 0 | 0 | 0 | 62 | 0 | 0 | 0 | 0 |
7 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 99 | 0 | 0 | 0 | 0 | 0 |
#include <iostream>
using namespace std;
const int MAX_E = (int)1e6;
const int MAX_V = (int)1e3;
const int INF = (int)1e9;
int numOfVertex, numOfEdge, sourceVertex, destinationVertex;
int capacity[MAX_E], onEnd[MAX_E], nextEdge[MAX_E], edgeCount, firstEdge[MAX_V], visited[MAX_V];
void addEdge(int u, int v, int cap) {
// Прямое ребро
onEnd[edgeCount] = v; // на конце прямого v
nextEdge[edgeCount] = firstEdge[u]; // добавляем в начало списка для u
firstEdge[u] = edgeCount; // теперь начало списка - новое ребро
capacity[edgeCount++] = cap; // устанавливаем пропускную способность
// Обратное ребро
onEnd[edgeCount] = u; // на конце обратного u
nextEdge[edgeCount] = firstEdge[v]; // добавляем в начало списка для v
firstEdge[v] = edgeCount; // теперь начало списка - новое ребро
capacity[edgeCount++] = 0; // устанавливаем пропускную способность
}
int findFlow(int u, int flow) {
if (u == destinationVertex) return flow; // возвращяем полученный минимум на пути
...