E

来源:互联网 发布:caj什么软件打开 编辑:程序博客网 时间:2024/06/09 14:42

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4966


题意:给你个函数,求函数的最小值以及函数取得最小值的时的自变量的值。

思路:今天算是又涨知识惹,3分可以来求一个凹凸函数的最值。

#include <bits/stdc++.h>using namespace std;const double eps=1e-7;double n,p,s,v;double get_val(double c){    return n*pow(log2(n),c*sqrt(2.0))/(p*1e9)+(1+1.0/c)*s/v;}int main(){    while(~scanf("%lf%lf%lf%lf",&n,&p,&s,&v))    {        double l=0.0,r=100.0;        while(r-l>eps)        {            double mid1=(l+r)/2.0,mid2=(mid1+r)/2.0;            if(get_val(mid1)<get_val(mid2))r=mid2;            else l=mid1;        }        printf("%.7f %.7f\n",get_val(l),l);    }    return 0;}


1 0