Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2010-03-04[過去問]SRM462(DIV2)

SRM462 div2 第一問(250点)

| SRM462 div2 第一問(250点) - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク - SRM462 div2 第一問(250点) - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=10586

半径が等倍で構成される同心円上の複数の円をターゲットとみなし矢を射る時、

得点の期待値を求める問題。(円ごとに点数が設定されている)

なお、どの円にあたるかどうかはランダム(運次第)


問題を理解するのに少し時間がかかったが、

面積比が1:3:5:7: ... :2n-1 になることが分かれば簡単だった。

public class Archery {
	public double expectedPoints(int N, int[] ringPoints) {
		double point = 0.0f;
		// 面積の係数
		int k = 1;
		for (int i = 0 ; i <= N ; i++) {
			point += k * ringPoints[i];
			k += 2;
		}
		// 全体の面積で割る
		return point / (N + 1) / (N + 1) / 1.0f;
	}
}

ll2010/03/05 06:37プラクティスルームでシステムテスト試せますよ
たぶん1000点問題はそれだとシステムテストで落とされると思います

hama_DUhama_DU2010/03/05 07:59>システムテスト試せますよ
そうなんですか!?今度試してみます!

>それだとシステムテストで落とされると思います
む~ やはりN個設置不可の場合はもう一工夫する必要がありますね。