12025. Без циклів


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам дано простий неорієнтований граф з \(N\) вершинами та \(M\) ребрами. Вершини пронумеровані від 1 до \(N\), а \(i\)-те ребро з’єднує вершину \(A_i\) ​ та вершину \(B_i ​\). Давайте видалимо нуль або більше ребер, щоб видалити цикли з графа. Знайдіть мінімальну кількість ребер, які необхідно видалити для цього.

Що таке простий неорієнтований граф? Простий неорієнтований граф — це граф без петель або мультиребер, ребра якого не мають напрямку.
Що таке цикл? Цикл у простому неорієнтованому графі — це послідовність вершин \((v_0 ​,v_1 ​,…,v_{n−1} ​)\) довжиною щонайменше 3, яка задовольняє \(v_i ​ \neq v_j\) ​ якщо \(i \neq j\) така, що для кожного \(0 ≤i<n\), між \(v_i\) ​ та \(v_{i+1}\) ​ є ребро.

Обмеження

  • \(1≤N≤2×10^5\)
  • \(0≤M≤2×10^5\)
  • \(1≤A_i ,B_i ≤N\)
  • Даний граф простий.
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(M\) рядків містять цілі числа \(A_i, B_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

6 7
1 2
1 3
2 3
4 2
6 5
4 6
4 5

Приклад вихідних даних

2

Один із способів видалити цикли з графа - це видалити два ребра між вершинами 1 і 2 і між вершиною 4 і вершиною 5.

Немає способу видалити цикли з граф, видаливши одне ребро, тому вам слід вивести 2.

Приклад вхідних даних

4 2
1 2
3 4

Приклад вихідних даних

0

Приклад вхідних даних

5 3
1 2
1 3
2 3

Приклад вихідних даних

1

Коментарі

Ще немає коментарів.