Yulia475414
05.09.2022 20:17

#include #include
#include
#include
using namespace std;
const int ver_max = 45;
int ver_num;
const int IMMENSITY = 10000;
int f[ver_max][ver_max];
int c[ver_max][ver_max];
int flux[ver_max];
int route[ver_max];
int turn[ver_max];
int tp, tc;
//Функция для нахождения пути
int GetWay(int origin, int dry)
{
tp = 0; tc = 1; turn[0] = origin;
route[dry] = -1;
int i;
int NodeCut;
memset(flux, 0, sizeof(int)*ver_num);
flux[origin] = IMMENSITY;
while (route[dry] == -1 && tp < tc)
{
NodeCut = turn[tp];
for (i = 0; i < ver_num; i++)
if ((c[NodeCut][i] - f[NodeCut][i]) > 0 && flux[i] == 0)
{
turn[tc] = i; tc++;
route[i] = NodeCut;
if (c[NodeCut][i] - f[NodeCut][i] < flux[NodeCut])
{
flux[i] = c[NodeCut][i];
}
else
{
flux[i] = flux[NodeCut];
}
}
tp++;
}
if (route[dry] == -1) return 0;
NodeCut = dry;
while (NodeCut != origin)
{
f[route[NodeCut]][NodeCut] += flux[dry];
NodeCut = route[NodeCut];
}
return flux[dry];
}
//Функция для нахождения максимального потока
int FluxMax(int origin, int dry)
{
memset(f, 0, sizeof(int)*ver_max*ver_max);
int FluxMax = 0;
int FluxAdd;
do
{
FluxAdd = GetWay(origin, dry);
FluxMax += FluxAdd;
}
while (FluxAdd > 0);
return FluxMax;
}
//Основной код программы
int main()
{
int origin, dry;
system("title Поиск максимального пути методом Форда — Фалкерсона");
setlocale(LC_ALL, "Russian");
printf("Введите количество вершин:");
scanf_s("%d", &ver_num);
printf("Введите исток А и сток В (счет начинается с 0!):");
scanf_s("%d %d", &origin, &dry);
int i, j;
printf("Введите смежную матрицу графа: \n");
for (i = 0; i < ver_num; i++)
for (j = 0; j < ver_num; j++)
scanf_s("%d", &c[i][j]);
printf("Максимальный поток сети от истока %d до стока %d: %d", origin, dry, FluxMax(origin, dry));
_getch();
return 0;
}
, только нужно С#) а не С++

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
superrobbot2000
04.08.2022 07:45
1)Назовите систему, в которой для записи любых чисел используется всего один символ?
В) Унарная;

2)Устройство, обеспечивающее обмен информацией с контроллерами периферических устройств, называется:
Г) PCI-шина.

3). Какой из тегов HTML рисует горизонтальную линию?
hr

4) Какой из перечисленных языков программирования относится к низкоуровневым?
Г) Assembler.

5)Файлы с расширением .cvs используют для хранения:
Г) Изображений.

6)Файл размером 2000 Кбайт передаётся через некоторое соединение в течение 30 секунд. Определите размер файла (в Кбайт), который можно передать через это соединение за 12 секунд.
Пропорция 2000Кбайт / 30с * 12с = 800Кбайт
А) 800 Кбайт;

7)Переведите число 126 из десятичной системы счисления в двоичную систему счисления.
А) 1111110;

8)Укажите, что в электронных таблицах не применяется в формулах для ссылки на другие ячейки:
А) Гиперссылка;
0,0(0 оценок)
Ответ:
akr999
04.08.2022 07:45
1)Назовите систему, в которой для записи любых чисел используется всего один символ?
В) Унарная;

2)Устройство, обеспечивающее обмен информацией с контроллерами периферических устройств, называется:
Г) PCI-шина.

3). Какой из тегов HTML рисует горизонтальную линию?
hr

4) Какой из перечисленных языков программирования относится к низкоуровневым?
Г) Assembler.

5)Файлы с расширением .cvs используют для хранения:
Г) Изображений.

6)Файл размером 2000 Кбайт передаётся через некоторое соединение в течение 30 секунд. Определите размер файла (в Кбайт), который можно передать через это соединение за 12 секунд.
Пропорция 2000Кбайт / 30с * 12с = 800Кбайт
А) 800 Кбайт;

7)Переведите число 126 из десятичной системы счисления в двоичную систему счисления.
А) 1111110;

8)Укажите, что в электронных таблицах не применяется в формулах для ссылки на другие ячейки:
А) Гиперссылка;
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота