AtCoder Regular Contest 054 B - ムーアの法則
解法
凸関数 + 凸関数 という形になっているので, 全体としても凸関数です。ということで三分探索をしましょう。
int main() { double P; cin >> P; double l = 0, r = 1e18; auto f = [&](double x) { return x+P/pow(2, x/1.5); }; for (int i = 0; i < 200; i++) { double m1 = (2*l+r)/3, m2 = (l+2*r)/3; if (f(m1) < f(m2)) r = m2; else l = m1; } printf("%.10lf\n", f((l+r)/2)); return 0; }