次のような問題を考える:講堂アルゴリズムの人々シーティング - 動作しませんので、良い
we have participants and we want to place them in an auditorium, where
each of the participants has a list of the people that he/she don't
want to sit behind that person , or at the same line of that person .
We do not have any restriction regarding the number of lines in the auditorium ,or the number of seats.
私は誰もが満足しているアルゴリズムを記述する必要があります。
私は、グラフ理論の分野に問題を投げかけているトポロジカルソートについて考えていました。 *グラフG =(V、E)でトポロジカルソートを実行します。 *問題のソートがある場合は「はい」を返し、そうでない場合は「いいえ」を返します。 アルゴリズムは次のように動作します。 各行に1人の参加者が配置されます。最初の行は最初の参加者(TopSortの最初の頂点)を保持し、2番目の行は2番目の参加者などを保持します。 If participant A
は、背後に(または同じ行に)座ったくない場合は、participant B
を指定すると、AからBへの有向枝があり、Aは後ろにB
と表示されます。 A
がB
(または彼の後ろ)と同一線上に座って、そしてB
はA
(または同じラインで)後ろに座るしたくないしたくないとき
私の問題が開始されます。循環依存関係は、(A
がB
前に座るしたい、とB
はA
前に座るしたい)がある場合、私はあなたが、助け よろしく感謝
、ロン
明らか
あなたは、AがBと同じ行に座りたくないとき(そしてBの後ろに)BがAの後ろに座ることを望んでいないとき(または同じ行に) ? – ron
@ron:問題は明らかに解決策がないので、実際にはNOを返します。 – Vlad
返り値NOサイクルがあれば、長さ2でなく、BがAの後ろに座りたい、CがBの後ろに座りたい、AがCの後ろに座りたい、というサイクルもある。 – amit