Тойрогтой буудал уу?


Submit solution

Points: 3
Time limit: 0.5s
Memory limit: 256M

Author:
Problem type
Allowed languages
C++

Хотын автобусны буудлууд хоорондоо замаар холбогдсон байна.

Бид энэ сүлжээг дараах байдлаар загварчилна:

  • Буудал бүр → нэг орой (node)
  • Зам бүр → ирмэг (edge)

? Энэ graph нь чиглэлгүй (undirected) гэж үзнэ.


? Зорилго

? Өгөгдсөн graph-д:

тойрог (cycle) байгаа эсэхийг шалга.


? Тойрог (cycle) гэж юу вэ?

? Хэрэв нэг node-оос эхлээд:

  • edge-үүдээр явж
  • дахин өөрийгөө хүрч чадвал

? энэ нь cycle гэж үзнэ.

Оролт:

Эхний мөрөнд хоёр бүхэл тоо өгөгдөнө:

N M

  • N — буудлын тоо
  • M — замын тоо

Дараагийн M мөр бүрт:

u v

  • u болон v буудлын хооронд зам байна

Гаралт:

  • Хэрэв cycle байвал:YES
  • Үгүй бол:NO

Хязгаарлалтууд:

  • 1 ≤ N ≤ 100000
  • 0 ≤ M ≤ 100000
  • 1 ≤ u, v ≤ N
Дэд бодлого
Дэд бодлого оноо Хязгарлалт Тайлбар
1 Дэд бодлого -1 1 N ≤ 100
2 Дэд бодлого -2 1 N ≤ 2000
3 Дэд бодлого -3 1 N ≤ 100000
4 Дэд бодлого -4 1 Нэмэлт хязгаарлалтгүй

Жишээ:

Оролт-1
4 3
1 2
2 3
3 4
Гаралт-1
NO
Оролт-2
3 3
1 2
2 3
3 1
Гаралт-2
YES
Оролт-3
5 4
1 2
2 3
3 1
4 5
Гаралт-3
YES

Comments

There are no comments at the moment.