zoukankan      html  css  js  c++  java
  • hdu 3714 Error Curves(三分)

    http://acm.hdu.edu.cn/showproblem.php?pid=3714

    【题意】:

      题目意思看了很久很久,简单地说就是给你n个二次函数,定义域为[0,1000], 求x在定义域中每个x所在的n个函数的最大值的最小值。很拗口吧,显然这题不是组队或者耐心的做是不知道性质的,至少我没看出来。网上说是三分,我画了几个图,确实是。根据二次函数的性质,增长的快慢已经确定了,那的确是单峰的。那就OK了。另外eps的问题1e-8还是wa,1e-9AC。想了下,因为有系数a,b,c的缘故,一乘就WA了。代码就是三分了,没什么特殊的。(三分,什么时候我能主动的看出你???)

    【题解】:

      第二个三分,三分啊三分,很难自己看出来啊!!!

    【code】:

      

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #include <math.h>
     5 
     6 using namespace std;
     7 
     8 #define eps 1e-9
     9 #define INF 1e15
    10 
    11 struct Nod
    12 {
    13     double a,b,c;
    14 }node[10010];
    15 
    16 int n;
    17 
    18 double func(double a,double b,double c,double x)
    19 {
    20     return a*x*x+b*x+c;
    21 }
    22 
    23 double getMins(double x)
    24 {
    25     int i;
    26     double maks = -INF;
    27     for(i=0;i<n;i++)
    28     {
    29         double temp = func(node[i].a,node[i].b,node[i].c,x);
    30         if(maks<temp)
    31         {
    32             maks = temp;
    33         }
    34     }
    35     return maks;
    36 }
    37 
    38 void sanfen()
    39 {
    40     double l=0,r=1000,mid,ans = INF;
    41     while(l<=r)
    42     {
    43         mid = (l+r)/2;
    44         double temp1 = getMins(mid);
    45         double temp2 = getMins(mid-eps);
    46         if(temp1<temp2)
    47         {
    48             l = mid + eps;
    49         }
    50         else
    51         {
    52             r = mid - eps;
    53         }
    54         if(ans>temp1)
    55         {
    56             ans=temp1;
    57         }
    58     }
    59     printf("%.4lf
    ",ans);
    60 }
    61 
    62 int main()
    63 {
    64     int t;
    65     scanf("%d",&t);
    66     while(t--)
    67     {
    68         scanf("%d",&n);
    69         int i;
    70         for(i=0;i<n;i++)
    71         {
    72             scanf("%lf%lf%lf",&node[i].a,&node[i].b,&node[i].c);
    73         }
    74         sanfen();
    75     }
    76     return 0;
    77 }
  • 相关阅读:
    ATOM编辑器插件
    说说关于IE浏览器兼容性
    git命令
    Vue js 的生命周期详解
    Flexbox 布局教程
    到底vuex是什么?
    CSS3 动画 animation和@keyframes
    zabbix添加触发器Triggers
    zabbix邮件报警
    修改zabbix监控项刷新时间
  • 原文地址:https://www.cnblogs.com/crazyapple/p/3317755.html
Copyright © 2011-2022 走看看