ツリー復興UVA - 10410

この問題は、本当です。しません。私は、隣接の多様性関係DFS数の二つの主なポイントは、私はいつも、検索の書き込みではないコードを見つけるために、嵐の真ん中を列挙したかったことを疑います。そして、それが小から大にそのトラバースを注意しなければならない、とこのプロパティを使用することはありません。短期的な態度では、あまりにも多くの食べ物主に、完全に崩壊外です。

タイトル説明:https://vjudge.net/problem/UVA-10410

インターネットより詳細な説明:https://www.cnblogs.com/jerryRey/p/4622927.html

核となるアイデアは、注文DFSに、それ相当の場合には主に、隣接する、兄弟で同時にシーケンスをBFSと親子関係が等価である、そして我々は裁判官関係の昇順を横断することができます。

 

DFSおよびBFSは、配列中の位置として定義されます。

現在のノードのuを設定し、次のノードvです。次のような関係は以下のとおりです。

 

 

 

2例の後に隣接BFS配列に重畳見ることができます。実際には、ケース処理は、Vは、UとUの子ノードであるので、vはBFS上記U兄弟トラバーサル順序には完了している場合には隣接しており、同等に(又はれますかuが、彼らはまだ、子ノードを持っている場合、uは、この層を通過したときに、その後、番号の最初のトラバーサルをvすべきではないので、すべてのリーフノードと言ったし、この層Aの最初のノードでなければなりません子ノード)、この層及びuがあっても、uが次の層を広げる続けることができ、得られた次のトラバーサル順序は、したがって、シーケンス全体の最後の部分でのみ、このとき、実際には、ツリー全体の最後のノードでありますV U(V、すなわちU後、最後の層に移動され、対応するサブツリーに対応する)の最初の兄弟後に見られ、VのDFSとBFS配列サブツリーない対応するため変更は、全体のシーケンスは変更されません。

この結論を取得し、我々は長い裁判官として1つのBFS(V)= BFS(U)Vとされていない場合、それは子ノードでなければならない、それがある場合uは、あなたが兄弟を行うことができますすることができます何よりも大きいこと。ました

また、アレイのような直接的な堆積物中の各数列に対応する位置に前処理することができるで読み出されることを学んだ、もう探す必要はありません。

 

参照コードブログのコードを引用しました。TQL

おすすめ

転載: www.cnblogs.com/jionkitten/p/12320995.html