A. MiniumCut
最初にこの質問を見てください、あなたは最小の切り木を考えることができます。
次に、元の画像の最小カットツリーが元の画像と等しいことがわかります。
つまり、答えはツリーとして表現できます。
次に、このツリーを見つける方法を検討します。一般的な考え方は、関係の各セットを小さいものから大きいものへ、または大きいものから小さいものへと検討することです。
後者のアイデアはここで使用され、おそらくクラスカルの再構成ツリーと同様のアイデアを適用し、これらの関係の最大のスパニングツリーが最小のカットツリーであることがわかりました。
その後、合法かどうかを激しく判断し、この問題を解決します。
B.ツリー
簡単な答えは、ポイントセットを選択することです。
ポイントセット内のすべてのエッジについて、係数が$ 1 $、その他の係数がすべて$ 2 $になるようにパスを選択できます。
したがって、サブツリーマージdpを記述し、サブツリーで選択されたポイントの数と、サブツリーに表示されたエンドポイントの数を記録します。
C.タワー
この質問について考えたとき、元のパリンドロームは単純に両頭挿入をサポートできることがわかりました。
実際、終端ノードが両端で維持されている限り。
そして、右端点の拡張は、文字列全体が回文列である場合にのみ左端点の終点ノードを変更できるため、特別な判断をするのがよい。
次に、回文の練習を通して、おそらく、文字列の展開ごとに、答えの変化は$ 0 $から$ 2 $の間であると考えることができます。
したがって、ハッシュを作成して、2,1ドルの増加が合法かどうかを判断してください。