QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

#989. W kaktusie

Statistics

Mając dane drzewo, dodaj jak najwięcej krawędzi tak, aby wynikowy graf był grafem kaktusowym.

Graf kaktusowy to graf, w którym każda krawędź należy do co najwyżej jednego cyklu prostego. Graf ten nie może zawierać pętli własnych ani krawędzi wielokrotnych.

Wejście

W pierwszej linii znajduje się liczba całkowita $N$, rozmiar drzewa ($1 \le N \le 200\,000$).

Każda z kolejnych $N - 1$ linii zawiera dwie liczby całkowite $u$ oraz $v$ ($1 \le u, v \le N, u \neq v$), wskazujące na istnienie krawędzi między węzłami $u$ oraz $v$. Gwarantuje się, że wynikowy graf jest drzewem.

Wyjście

W pierwszej linii wypisz $K$, maksymalną liczbę krawędzi, które można dodać do grafu. W każdej z kolejnych $K$ linii wypisz dwie liczby całkowite $a$ oraz $b$ ($1 \le a, b \le N, a \neq b$), wskazujące, że dodajesz krawędź między węzłami $a$ oraz $b$. Wynikowy graf musi być grafem kaktusowym.

Jeśli istnieje kilka rozwiązań z maksymalną możliwą liczbą $K$, wypisz dowolne z nich.

Przykład

Wejście 1

6
6 4
3 1
3 6
4 5
2 3

Wyjście 1

2
2 1
3 5

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.