zoukankan      html  css  js  c++  java
  • 萌新三分讲解+基础题ZOJ3203【三分凸性】

    (温馨提示:图片外部食用更加)

    mid=(left+right)>>1,midmid=(mid+right)>>1;

    举凸性函数的例子:

    首先我们一定要明确问题:求极值,这里是极大值。

    如图,

    第一种情况下:mid一定在midmid的左边,而且为什么只能确定左端?因为midmid位于极值位置未知,但是mid一定是左边!所以left=mid.

    第二种情况下:midmid一定在mid的右边,且一定在极值点的右边,mid却未知,所以right=midmid.

    同理凹型函数的方法。

    ZOJ3203:

    我知道只要告诉题意读者就能AC了。

    给你灯的高度H,人的高度h,灯离墙的高度D,H>h.

    思路:数学函数分析+感觉增减性。注意精度(1e-9 is good.)

    Code is not important, but it's necessary.

    //#include <bits/stdc++.h>
    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    typedef long long LL;
    typedef pair<int,int> PII;
    const double eps=1e-9;
    
    double H,h,D;
    
    double fun(double x)
    {
        return (D+H+(h-H)*D/x-x);
    }
    
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lf%lf%lf",&H,&h,&D);
            double left=D-h*D/H,right=D;
            while(left+eps<right)
            {
                double mid,midmid;
                mid=(left+right)/2;
                midmid=(mid+right)/2;
                double cmid,cmidmid;
                cmid=fun(mid);
                cmidmid=fun(midmid);
                if(cmid>cmidmid)
                    right=midmid;
                else
                    left=mid;
            }
            double ans=fun(left);
            printf("%.3lf
    ",ans);
        }
        return 0;
    }
    

    That's all, thanksfor watching!

  • 相关阅读:
    软件测试
    数据库中查询json 样式的值的sql语句
    xml转json的方法
    将数据保存本地文件
    Spring 配置 web.xml (防止spring 内存溢出)
    解决maven工程 子工程中的一些配置读取进来的问题
    quartz 的简单使用
    mock 测试 MVC
    sun 证书问题解决
    将文本转换为json的工具类
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777427.html
Copyright © 2011-2022 走看看