オンラインのジャッジのウェブサイトで見つけた問題は次のとおりです。
無向グラフ(ループあり)があります。グラフには k 個の異なるクラスの頂点があります。クラス 1 の頂点は緑、クラス 2 の頂点は赤などと考えることができます。白く着色された頂点の特別なクラスもあります (詳細は後述)。
ここで、ユーザーはソース頂点、宛先頂点、および一連の異なる頂点クラス (白以外) を指定します。
ソース頂点 10、宛先頂点 40、および赤→青→黒のシーケンスが与えられます。
パスが頂点 10 から始まり、1 つの赤い頂点に触れ、その後に 1 つの青と 1 つの黒の頂点が続き、頂点 40 に到達するような最短パスを見つける必要があります。ただし、パスには、必要な数の白い頂点を含めることができます。また、白い頂点を 2 回トラバースすることもできます。
10->20(白)->35(赤)->21(白)->22(白)->30(青)->34(黒)->40
正しくない:
10->20(白)->30(青)->21(白)->22(白)->35(赤)->34(黒)->40 (赤の前に青へ)
10→20(白)→35(赤)→56(赤)→21(白)→22(白)→30(青)→34(黒)→40(赤を通過)二回)