Энэ граф энгийн үү?
Submit solution
Points:
3
Time limit:
0.5s
Memory limit:
256M
Author:
Problem type
Allowed languages
C++
Хотын автобусны буудлуудын сүлжээг дараах байдлаар өгсөн байна.
- Буудал бүр → нэг орой (node)
- Зам бүр → хоёр буудлыг холбосон ирмэг (edge)
Гэхдээ өгөгдсөн сүлжээ нь алдаатай байж магадгүй.
? Зорилго
? Өгөгдсөн graph нь энгийн граф (simple graph) мөн эсэхийг шалга.
? Энгийн граф гэж юу вэ?
Graph нь энгийн байх нөхцөл:
❌ Self-loop байхгүй
(u, u)хэлбэрийн edge байх ёсгүй
❌ Давхардсан edge байхгүй
(u, v)болон(v, u)нь нэг edge гэж үзнэ- Ийм edge олон удаа давтагдах ёсгүй
Оролт:
Эхний мөрөнд хоёр бүхэл тоо өгөгдөнө:
N M
- N — буудлын тоо
- M — замын тоо
Дараагийн M мөр бүрт:
u v
- u болон v буудлын хооронд зам байна
? Энэ нь чиглэлгүй (undirected) graph гэж үзнэ
Гаралт:
- Хэрэв graph энгийн бол: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
3 2
1 2
2 3
Гаралт-1
YES
Оролт-2
3 2
1 1
2 3
Гаралт-2
NO
Оролт-3
3 3
1 2
2 1
1 2
Гаралт-3
NO
Тайлбар
- 1 → degree 4
- бусад → degree 1 → leaf
? Хариу = 4
Comments