Giriş
Bu meydan okumada, yüksek bölen grafik olarak adlandırdığım belirli bir sonsuz yönlendirilmemiş grafikle ilgileneceğiz . Bu düğümler iki düğüm arasındaki bir kenar vardır 2. başlayarak tamsayılardır <b ise bir bölme b ve bir 2 ≥ b . 2'den 18'e kadar olan aralığın oluşturduğu alt grafik şöyle görünür:
16-8 12 18
\|/ |/|
4 6 9 10 15 14
| |/ |/ |
2 3 5 7 11 13 17
Sonsuz yüksek bölen grafiğinin bağlı olduğu gösterilebilir, böylece iki düğüm arasındaki en kısa yolu sorabiliriz.
Giriş ve çıkış
Girişleriniz a ve b olmak üzere iki tamsayıdır . 2 ≤ a ≤ b <1000 olduğunu varsayabilirsiniz . Çıktınız, sonsuz yüksek bölen grafiğindeki a ve b arasındaki en kısa yolun uzunluğudur . Bu, yoldaki kenar sayısı anlamına gelir.
Aşağıdaki gerçeği yararlı bulabilirsiniz: daima itibaren optimum yolu vardır bir etmek b ilk yükseldiği ve sonra düştüğü ve kesinlikle daha az olan sadece ziyaretler düğümler oluyor 2b 2 . Özellikle, b <1000 olduğu için sadece 2.000.000'dan küçük düğümleri göz önünde bulundurmanız gerekir.
Örnekler
Girişleri 3
ve 32
. 3 ve 32 düğümleri arasındaki olası bir yol
3 -- 6 -- 12 -- 96 -- 32
Bu yolun dört kenarı vardır ve daha kısa yollar olmadığı ortaya çıkar, bu nedenle doğru çıktı olur 4
.
Başka bir örnek olarak, bir uygun yolu 2
ve 25
bir
2 -- 4 -- 8 -- 40 -- 200 -- 25
böylece doğru çıktı 5
. Bu durumda, hiçbir optimal yol düğümü içermez 50 = lcm(2, 25)
.
Kurallar ve puanlama
Tam bir program veya işlev yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez. Zaman veya bellek sınırı yoktur, bu nedenle kaba zorlamaya izin verilir.
Test senaryoları
2 2 -> 0
2 3 -> 4
2 4 -> 1
2 5 -> 5
3 5 -> 4
6 8 -> 2
8 16 -> 1
12 16 -> 2
16 16 -> 0
2 25 -> 5
3 32 -> 4
2 256 -> 3
60 77 -> 3
56 155 -> 3
339 540 -> 2
6 966 -> 4
7 966 -> 2
11 966 -> 4
2 997 -> 7
991 997 -> 4
FindShortestPath
standart boşluklar üzerindeki kısıtlamayı ihlal ediyor mu? Olursa, bana bildirin, gönderimi silerim.