luogu3382【模板】三分法
阿新 • • 發佈:2018-06-23
algorithm namespace sca ring sin string 內存 AS CP
給出一個N次函數,保證在範圍[l,r]內存在一點x,使得[l,x]上單調增,[x,r]上單調減。試求出x的值。
看代碼即可。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAX_N = 15; const double EPS = 0.0000001; double A[MAX_N]; int N; double F(double x) { double ans = A[1]; for(int i = 2; i <= N; i++) ans = ans * x + A[i]; return ans; } int main() { double l, r; scanf("%d%lf%lf", &N, &l, &r); N++; for(int i = 1; i <= N; i++) scanf("%lf", A + i); while(r - l > EPS) { double mid1 = (r - l) / 3 + l, mid2 = (r - l) / 3 * 2 + l; if (F(mid1) > F(mid2)) r = mid2; else l = mid1; } printf("%.5f\n", l); return 0; }
luogu3382【模板】三分法