Автобусны нөлөөтэй буудал


Submit solution

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

Author:
Problem type
Allowed languages
C++

Улаанбаатар хотын автобусны сүлжээг дараах байдлаар загварчилъя.

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

  • Буудал бүрийг нэг орой (node)
  • Хоёр буудлын хооронд шууд зам байвал ирмэг (edge)

гэж үзье.

Та нэг буудлаас эхэлж автобусанд суун, ихдээ K удаа дамжин (өөр буудлаар дамжин) бусад буудлууд руу очиж болно. Бүх автобус 2 буудалын хооронд л явах боломжтой байдаг.

? Зорилго

? Ямар буудлаас эхэлбэл:

  • хамгийн олон өөр буудал руу
  • K алхмын дотор (≤ K зам дамжин) хүрч болох вэ?

Оролт:

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

N M K

  • N — буудлын тоо
  • M — замын тоо
  • K — хамгийн их дамжлагын тоо

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

u v

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

? Энэ нь чиглэлгүй (undirected) граф

Гаралт:

Нэг мөрөнд хоёр бүхэл тоо хэвлэнэ:

X Y

  • X — хамгийн олон хүрч болох буудлын тоо
  • Y — тийм боломжтой буудлын хамгийн бага дугаар

? Хэрэв хэд хэдэн буудал ижил тооны буудалд хүрч чадвал, хамгийн бага индексийг хэвлэнэ.

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

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

Жишээ:

Оролт-1
5 4 1
1 2
2 3
3 4
4 5
Гаралт-1
2 2
Тайлбар

K = 1 тул зөвхөн шууд хөршүүдийг тоолно.

  • 1 → {2} → 1
  • 2 → {1,3} → 2
  • 3 → {2,4} → 2
  • 4 → {3,5} → 2
  • 5 → {4} → 1

? хамгийн их = 2
? хамгийн бага индекс = 2

Оролт-2
5 4 2
1 2
2 3
3 4
4 5
Гаралт-2
4 3
Тайлбар

K = 2:

  • 3-аас: → {1,2,4,5} → 4 буудал

? хамгийн их = 4
? node = 3

Оролт-3
4 0 2
Гаралт-3
0 1
Тайлбар

Ямар ч зам байхгүй → хэн ч хаашаа ч хүрэхгүй

? бүх node → 0
? хамгийн бага индекс = 1


Comments

There are no comments at the moment.