前書き
この課題では、特定の無限の無向グラフを扱います。これを高除数グラフと呼びます。そのノードは、2つのノード間のエッジがある2から始まる整数である<Bであれば分割のB及び2 ≥bは。2〜18の範囲で形成されるサブグラフは次のようになります。
16-8 12 18
\|/ |/|
4 6 9 10 15 14
| |/ |/ |
2 3 5 7 11 13 17
無限大除数グラフが接続されていることを示すことができるため、2つのノード間の最短経路について尋ねることができます。
入出力
入力は2つの整数aとbです。2≤a≤b <1000と仮定できます。あなたの出力との間の最短経路の長さであり、そしてB無限高い除数のグラフです。これは、パス内のエッジの数を意味します。
あなたは次のことが役立つことがあります。常にから最適なパスが存在するB最初に増加し、その後減少し、かつ厳密に未満のみの訪問ノードだ2bの2。特に、b <1000なので、2 000 000未満のノードのみを考慮する必要があります。
例
入力3
とを考慮してください32
。ノード3と32の間の1つの可能なパスは
3 -- 6 -- 12 -- 96 -- 32
このパスには4つのエッジがあり、短いパスはないため、正しい出力は4
です。
別の例として、のための最適な経路2
と25
なります
2 -- 4 -- 8 -- 40 -- 200 -- 25
したがって、正しい出力は5
です。この場合、ノードを含む最適パスはありません50 = lcm(2, 25)
。
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。時間やメモリの制限はないため、ブルートフォーシングは許可されます。
テストケース
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
は標準的な抜け穴に関する制約に違反していますか?もしそうなら、私に知らせてください、そして、私は提出物を削除します。