01ディクショナリツリー異種または問題解決学習、
5570 ワード
連絡先:blcakcat
HDU 4825
最高から欲張りを始めて、どのように現在の位置の異あるいは結果を歩いて異あるいは結果を歩いてさもなくば現在の結果を歩きます
HDU 5536
題意:n個の求めることを与えて、(si+sj)^skの最大値を求めて、i,j,kは互いに等しくありません
構想:まずすべての数に対して1粒の01辞書の木を建てて、それからi,jを列挙して、siとsjを辞書の順序から削除して、貪欲に最大の結果を探します
HDU 3460
タイトル:n文字列があって、あなたは1つのプリンタがあって、あなたはプリンタを使ってすべての文字列を出力して、プリンタは3種類の操作があって、1つの文字を増加して、1つの文字を削除して、印刷して、少なくとも何回操作する必要がありますかを聞きます
構想:明らかに辞書ツリーを構築することができますが、肝心なのはどのように解くかです.このように考えることができます.まず、各文字列を印刷する貢献がnであることを知っています.では、印刷の貢献と削除の貢献を計算する必要があります.辞書ツリーを構築すると、辞書ツリーのすべてのノードが印刷する必要があります.これがすべての印刷の貢献です.削除の貢献は?最後に必ず1つの文字列しか残っていないことを明確にしなければならないので、前の肯定は削除されるので、すべて削除し、最長の文字列である削除操作の貢献を加えると仮定します.
HDU 4825
最高から欲張りを始めて、どのように現在の位置の異あるいは結果を歩いて異あるいは結果を歩いてさもなくば現在の結果を歩きます
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
HDU 5536
題意:n個の求めることを与えて、(si+sj)^skの最大値を求めて、i,j,kは互いに等しくありません
構想:まずすべての数に対して1粒の01辞書の木を建てて、それからi,jを列挙して、siとsjを辞書の順序から削除して、貪欲に最大の結果を探します
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
HDU 3460
タイトル:n文字列があって、あなたは1つのプリンタがあって、あなたはプリンタを使ってすべての文字列を出力して、プリンタは3種類の操作があって、1つの文字を増加して、1つの文字を削除して、印刷して、少なくとも何回操作する必要がありますかを聞きます
構想:明らかに辞書ツリーを構築することができますが、肝心なのはどのように解くかです.このように考えることができます.まず、各文字列を印刷する貢献がnであることを知っています.では、印刷の貢献と削除の貢献を計算する必要があります.辞書ツリーを構築すると、辞書ツリーのすべてのノードが印刷する必要があります.これがすべての印刷の貢献です.削除の貢献は?最後に必ず1つの文字列しか残っていないことを明確にしなければならないので、前の肯定は削除されるので、すべて削除し、最長の文字列である削除操作の貢献を加えると仮定します.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include