正の重み、有向、非巡回のグラフG =(V、E)が与えられます。sからtへのkエッジ最短経路を報告するためにO(k(m + n))で実行されるアルゴリズムを設計します。kエッジの最短パスは、sからtまでのk個のエッジを持つパスとして定義され、パスの合計の重みも、sからtまでのすべてのパスで最小である必要があります。
BFSを単独で使用して最短パスを見つけることはできないため(重みが等しくない限り)、実行時間はBFSを使用してk個のエッジを持つパスを見つけることを意味すると思います。私を失望させているのはkです。これは、BFSをk回実行することを意味すると思います。
私の考えられるアイデアは、ソースからBFSを実行して、考えられるすべてのkリンクパスを見つけることです。途中でレベルを追跡し、キューに追加するときに各ノードへの合計パスの重みを保存することで、考えられるすべてのk-linkパスとその重みを見つけることができます。明らかに、パスの重みが小さい、より低いレベルで宛先に遭遇した場合、定義上、kエッジの最短パスはありません。総重量が少ないk個を超えるエッジを持つパスがある場合はどうでしょうか。また、O(k(m + n))ではありません。役立つヒントをいただければ幸いです。