C-merのブログ

ザ・雑記

TopCoder Member SRM 501 div1 easy - FoxPlayingGame

問題
TopCoder Member SRM 501 div1 easy - FoxPlayingGame
TopCoder Statistics - Problem Statement

使用言語
Java

要約
scoreに対して任意の順序でnA回

方針
・全探索
→O(2ˆn)なので×

・場合分け
→面倒臭い

・最大値を求める
→乗算の効果を最大にするために,常にまとまって掛け算される
→そのまとまりに何回(paramB/1000)をかけるかでループ

所感
・明日Javaの試験なので今日はJavaです
・勘が大切な問題
・キャスト!

コード

public double theMax(int nA, int nB, int paramA, int paramB) {
		double sumA = nA * (paramA / 1000.0);
		double pb = paramB / 1000.0;
		double ans = -10e9 + 0.0;

		for (int i = 0; i < nB + 1; i++)
			ans = Math.max(ans, sumA * Math.pow(pb, i));

		return ans;
	}