Найдите все вершины графа, которые являются истоками, и все его вершины, которые являются стоками - C#

Узнай цену своей работы

Формулировка задачи:

Напомним, что вершина ориентированного графа называется истоком, если в нее не входит ни одно ребро и стоком, если из нее не выходит ни одного ребра. Ориентированный граф задан матрицей смежности. Найдите все вершины графа, которые являются истоками, и все его вершины, которые являются стоками.

Формат входных данных

Сначала вводится число n ( 1<=n<=100) – количество вершин в графе, а затем n строк по n чисел, каждое из которых равно 0 или 1, – его матрица смежности.

Формат выходных данных

В первой строке выведите k – число истоков в графе и затем k чисел – номера вершин, которые являются истоками, в возрастающем порядке. Во второй строке выведите информацию о стоках в том же порядке.

входные данные

4 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0

выходные данные

1 3 2 2 4 помогите,пожалуйста,реализовать эту задачу,как я понял надо посчитать количество пустых строк по горизонтали и вертикале,а потом вывести их номера,но сам не могу реализовать. заранее спасибо.

Решение задачи: «Найдите все вершины графа, которые являются истоками, и все его вершины, которые являются стоками»

textual
Листинг программы
// матрица смежности (квадратная)
int[,] m = { { 1, 0, 0, 1 }, { 0, 0, 0, 0 }, { 1, 1, 0, 1 }, { 0, 0, 0, 0 } };
int n = m.GetLength(0);
 
var истоки = new string[n];
var стоки = new string[n];
int истоки_sz = 0, стоки_sz = 0;
 
for (int i = 0; i < n; i++)
{
    int row = 0, col = 0;
    for (int j = 0; j < n && (row & col) == 0; j++)
    {
        row |= m[i, j];
        col |= m[j, i];
    }
 
    if (row == 0) истоки[истоки_sz++] = (i + 1).ToString();
    if (col == 0) стоки[стоки_sz++] = (i + 1).ToString();
}
 
Console.WriteLine("{0} {1}", истоки_sz, String.Join(" ", истоки, 0, истоки_sz));
Console.WriteLine("{0} {1}", стоки_sz, String.Join(" ", стоки, 0, стоки_sz));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы