• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            The 2010 ACM-ICPC Asia Chengdu Regional Contest Error Curves 三分法求凸函數極值

            Error Curves

            Time Limit: 2 Seconds      Memory Limit: 65536 KB

            Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a method called Linear Discriminant Analysis, which has many interesting properties.

            In order to test the algorithm's efficiency, she collects many datasets. What's more, each data is divided into two parts: training data and test data. She gets the parameters of the model on training data and test the model on test data.

            To her surprise, she finds each dataset's test error curve is just a parabolic curve. A parabolic curve corresponds to a quadratic function. In mathematics, a quadratic function is a polynomial function of the form f(x) = ax2 + bx + c. The quadratic will degrade to linear function if a = 0.

            Quadric Function

            It's very easy to calculate the minimal error if there is only one test error curve. However, there are several datasets, which means Josephina will obtain many parabolic curves. Josephina wants to get the tuned parameters that make the best performance on all datasets. So she should take all error curves into account, i.e., she has to deal with many quadric functions and make a new error definition to represent the total error. Now, she focuses on the following new function's minimal which related to multiple quadric functions.

            The new function F(x) is defined as follow:

            F(x) = max(Si(x)), i = 1...n. The domain of x is [0, 1000]. Si(x) is a quadric function.

            Josephina wonders the minimum of F(x). Unfortunately, it's too hard for her to solve this problem. As a super programmer, can you help her?

            Input

            The input contains multiple test cases. The first line is the number of cases T (T < 100). Each case begins with a number n(n ≤ 10000). Following n lines, each line contains three integers a (0 ≤ a ≤ 100), b (|b| ≤ 5000), c (|c| ≤ 5000), which mean the corresponding coefficients of a quadratic function.

            Output

            For each test case, output the answer in a line. Round to 4 digits after the decimal point.

            Sample Input

            2
            1
            2 0 0
            2
            2 0 0
            2 -4 2
            

            Sample Output

            0.0000
            0.5000
            
            簡明題意:求一堆開口向上的二次函數在[0,1000]范圍上函數值最大值的最小值。
            二次函數的子集仍然為凸函數,所以可以用三分法求極值。精度實在很蛋疼,這題要求值域精確到1e-4,但是定義域沒說精確到多少,結果死wa,卡到1e-10終于過了。。
            貼代碼
             1# include <cstdio>
             2# include <cmath>
             3using namespace std;
             4int n;
             5int data[10001][3];
             6# define max(a,b) ((a)>(b)?(a):(b))
             7double cal(double mid)
             8{
             9   double res=-1e26;
            10   for(int i=0;i<n;i++)
            11     res=max(res,data[i][0]*mid*mid+data[i][1]*mid+data[i][2]);
            12   return res;
            13}

            14int main()
            15{
            16    int test;
            17    scanf("%d",&test);
            18    while(test--)
            19    {
            20       scanf("%d",&n);
            21       for(int i=0;i<n;i++)
            22         scanf("%d%d%d",&data[i][0],&data[i][1],&data[i][2]);
            23       double s=0.0,e=1000.0;
            24       double last=s;
            25       while(fabs(e-s)>1e-10)
            26       {
            27       
            28         double m1=(s+e)/2.0,m2=(m1+e)/2.0;
            29         if(cal(m1)<cal(m2))
            30           e=m2;
            31         else 
            32           s=m1;
            33       }

            34       printf("%.4lf\n",cal(e));
            35    }

            36    return 0;
            37}

            38
            39

            posted on 2010-11-16 00:50 yzhw 閱讀(801) 評論(0)  編輯 收藏 引用 所屬分類: numberic

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久国产影院| 亚洲熟妇无码另类久久久| 亚洲精品无码久久久久去q | 伊人色综合久久天天人手人婷| 亚洲国产成人精品91久久久 | 精品久久久久久久| 久久er国产精品免费观看2| 久久精品99久久香蕉国产色戒| 亚洲va久久久噜噜噜久久男同| 亚洲国产另类久久久精品黑人| 国产亚洲精品美女久久久| 久久国产精品国产自线拍免费| 欧美伊香蕉久久综合类网站| 久久久久九国产精品| 无码国内精品久久综合88| 久久婷婷激情综合色综合俺也去| 韩国三级大全久久网站| 日本精品久久久久久久久免费| 久久精品国产2020| 四虎国产精品免费久久5151| 久久午夜综合久久| 久久久国产乱子伦精品作者| 国产精品99久久不卡| 一本一本久久aa综合精品| 欧美日韩中文字幕久久伊人| 久久午夜夜伦鲁鲁片免费无码影视| 一本色道久久99一综合| 97久久精品人人做人人爽| 亚洲第一永久AV网站久久精品男人的天堂AV| yy6080久久| 韩国三级中文字幕hd久久精品| 狠狠综合久久综合88亚洲| 国产精品欧美亚洲韩国日本久久| 久久人人爽人人爽人人av东京热 | 久久精品一本到99热免费| 久久久综合香蕉尹人综合网| 狠狠色婷婷久久一区二区三区| 久久久久国产精品麻豆AR影院| 久久人人爽人人爽人人片av高请 | 国产精品欧美亚洲韩国日本久久| 一本色道久久88—综合亚洲精品 |