A.コイン
まず、あなたはそう長く貢献が最終的にラインにマージされた各法案のために計算されるように、独立した各法案の貢献を推測することができます。
直接行う複雑さが死んでしまいます。
各法案の検討のため、差動配列の寄与と枚数が明らかに単調な、あなたは現在、最適なソリューションを維持するために、動的なヒープを使用できるように。
のみすべてのプリアウトすることなく、これらの状態を動的に計算して、$ N $状態の最大を使用することがわかりました。
B. B
私のアプローチは、元の木は、あなたがプログラムのちょうど右の数を取得することができ、プログラムのKエッジ、および除外の少なくとも同じ数を持って模索することです。
番号方式はツリーDP、セットの$ F [I] [J]で必要とされ得る[K] $ $ I $は、ブロックサイズは$ K $ある$ J $、$ I $通信のサブツリー選択されたエッジを表しますプログラムの数。
そして、その方程式から出てくるために、木の数は、プログラムをカウントすることができます。
そして、このことは、最適化するのに続けることができます。、実際には、各ブロック内のプログラムユニコムポイントの選択数をその式の実際の意味を考えてみましょう。その後、第三次元が$ 0 / $ 1、中国聯通は、現在のブロックがすでに選出されて表しなると最適化を継続することができます。
このような複雑さは$ O(N ^ 2)$です。
その後のアプローチは、問題のルーチンを解決する、引数が複数の値を直接従事することができます置き換えて、行列ガウスの消去+ツリーです。私は前に何度も行っています。
C.バッテリー
各点が同時に制限なく選択したポイント数の形式を制限するために見つけることができるために、いないようです、しかし、見つけることができ、2つのタレットがある場合は、この点を通って同じ方向に同時にすることができ、その後、次の2つの砦を打つ必要がありますA。
ほとんどの2点で砦後に、異なる方向からだから、そうでなければ解決策は、それは制限が二つのもののために投票しないことはできないとなりません。
だから、単純な2座っラインで直接設定し、モデルがあります。