面積比は相似比の2乗
全ての図形は三角形の集合として表せるため、三角形の面積比が相似比の2乗であるかを考える。
と がある。
ここで、 である。
相似比を としたとき、 の底辺 は の底辺 により であり
また、 の高さを 、 の高さを としたとき、 となる。
これらより、 の面積は 、 の面積は である。
ここで、面積比は 。
これを整理していく。
両辺に2を掛け
両辺をacで割り
両辺に を掛け
よって、相似比 の図形の面積比は である。
DPに対するメモ
最近JOI(日本情報オリンピック)の存在を知り、過去問を解いたりしていたのだが、おそらくDP的な考え方を使う問題を解いた。1
DPは前の値を使って次の値を計算できるか、次の値を計算するときにはその前の値がすべて計算終了していなければいけない。
例えば再帰関数は必要になれば自分自身を呼び出し前の値を計算する。
一度計算した値を保存しておき、無駄な計算を省いたメモ化再帰を用いた場合、DPとほぼ同じになる。
これはDPにおいても再帰においても、現在の値を計算するのに必要な前の値はすでに計算が終わっているからだ。
巨大な問題を解くのに、そのまま解くのではなく、再帰的な部分問題に分割し、小さなものから前の結果を利用して解いていく。
DPテーブルの添え字は状態を表しているので、
DP[状態1][状態2] = その時点での最良
としてやるといい?のかな?
-
解説AC↩
ABC177 感想
ABCDの4完。
A問題
よくある算数の問題。
ただ、簡単な問題は凡ミスしやすくて苦手。
B問題
s.size()-t.size()だけ全探索しようとしてs.size()==t.size()のケースでwaを出してしまった。
C問題
普通に計算するとのため紙に書いてみる。
そうすると、となっていることに気づく。
累積和を使ってAC。
D問題
幅優先探索して友好関係のある塊を用意して、それぞれの塊にいる人同士を最大になるように合わせていく。
解説を読んで、確かに一番大きい塊のメンバー数が答えだなとなった。
反省
C問題のきれいな解法を思いつけるようになりたい。
D問題を苦労して解いたのに茶diffで少しがっかりしたが、union-findというデータ構造を使うだけだそうな。
知らなかったぞ...
E問題はコンテスト後、解説を読みあっさりACできた。
頑張ればコンテスト中に通せたのではという思いがある。