Atcoder Regular Contest 054 B. ムーアの法則
Atcoder Regular Contest 054 B. ムーアの法則
B: ムーアの法則 - AtCoder Regular Contest 054 | AtCoder
感想
はじめて三分探索を書いた。凸関数の解を求めるときに使えるやつ。零点が手で計算できるときはそっちの方が良いんだと思う。
解法
三分探索で、はい。
一般的な書き方は知らないので、とりあえず動くように適当に書いた。
実装
#include "bits/stdc++.h" using namespace std; static const int INF = 0x3f3f3f3f; int main() { double p; cin >> p; double lb = 0, ub = (double) INF; int loop = 1000; double newp_left, newp_right; while (loop --) { double left = lb + (ub - lb) / 3.0; double right = lb + (ub - lb) * 2.0 / 3.0; newp_left = left + p / pow(2.0, left / 1.5); newp_right = right + p / pow(2.0, right / 1.5); if (newp_left < newp_right) ub = right; else lb = left; } cout << setprecision(15) << newp_right << endl; return 0; }