Найдите все вершины графа, которые являются истоками, и все его вершины, которые являются стоками - 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
Листинг программы
  1. // матрица смежности (квадратная)
  2. int[,] m = { { 1, 0, 0, 1 }, { 0, 0, 0, 0 }, { 1, 1, 0, 1 }, { 0, 0, 0, 0 } };
  3. int n = m.GetLength(0);
  4.  
  5. var истоки = new string[n];
  6. var стоки = new string[n];
  7. int истоки_sz = 0, стоки_sz = 0;
  8.  
  9. for (int i = 0; i < n; i++)
  10. {
  11.     int row = 0, col = 0;
  12.     for (int j = 0; j < n && (row & col) == 0; j++)
  13.     {
  14.         row |= m[i, j];
  15.         col |= m[j, i];
  16.     }
  17.  
  18.     if (row == 0) истоки[истоки_sz++] = (i + 1).ToString();
  19.     if (col == 0) стоки[стоки_sz++] = (i + 1).ToString();
  20. }
  21.  
  22. Console.WriteLine("{0} {1}", истоки_sz, String.Join(" ", истоки, 0, истоки_sz));
  23. Console.WriteLine("{0} {1}", стоки_sz, String.Join(" ", стоки, 0, стоки_sz));

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


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

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

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы