1つのルートノードを持つツリー構造に接続されたノードのセットがあり、任意のノードに任意の数の子ノードがあるとします。
ルートノードから開始するか、直接接続に沿って現在の位置からツリーをトラバースすることしかできません。つまり、特定のノードへのランダムアクセスはありませんが、グラフの構造はすでにわかっており、メモリに収まります。
各ノードには、あなたに明らかにされていない再訪する必要のある時間があります。再訪問が必要な時間は、[ここでi =最後の訪問からの時間間隔]として(now + a + i * b +(i * c)^ 2)として計算されます。パラメータa、b、およびcは、ノードごとに異なる値を持ちますが、それぞれは通常、異なるノード間で常に同じ桁内にあります。
再訪問が必要な時間が経過した後にノードを再訪問すると、ノードはリセットされるため、その訪問後の再訪問は、上記の式に従って(now + a)として計算されます。ノードにトラバースすると、再訪する必要のある時間を過ぎたかどうかが明らかになりますが、それが何であったか、またはa、b、cの値が何であるかはわかりません。
あなたの目標は、ツリー内の各ノードにトラバースして再訪問する戦略を選択し、ノードが再訪問する必要のある時間を超えないようにし、全体的なトラバース操作の数を最小限に抑えることです。早すぎるノードの再訪問は非効率的ですが、再訪問が必要な時間を過ぎてノードを再訪問することは非常に非効率的です。理想的には、再訪問が必要な時間の直前、または別のノードに移動するために必要な場合は、各ノードをヒットする必要があります。