HDU 2438 求函数+三分

题意:给出x,y,l,d,问汽车能否拐过去。

只需要求汽车下沿抵住下面墙壁时汽车初始左下角点P横坐标最大值就行。f(θ)=l*cos(θ)-(x*cos(θ)-d)/sin(θ).f(θ)在区间(0,π/2)上先增后减,三分最大值即可

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
double x,y,l,d;
const double pi=acos(-1.0);
const double eps=1e-6;
double getans(double t)
{
    return l*cos(t)-(x*cos(t)-d)/sin(t);
}
int main()
{
    while(~scanf("%lf%lf%lf%lf",&x,&y,&l,&d))
    {
        double le=0,ri=pi/2,m1,m2;
        while(ri-le>=eps)
        {
            m1=le+(ri-le)/3,m2=ri-(ri-le)/3;
            if(getans(m1)<=getans(m2))
                le=m1+eps;
            else
                ri=m2-eps;
        }
        if(getans(le)>y)
            puts("no");
        else
            puts("yes");
    }
    return 0;
}
时间: 2024-10-28 21:27:12

HDU 2438 求函数+三分的相关文章

c语言-一个求函数的积分的程序执行问题

问题描述 一个求函数的积分的程序执行问题 #define _CRT_SECURE_NO_DEPRECATE #include double integrate(double double int); double equa(double); /*函数说明,背积函数,具体函数可替换*/ float a b c; void main() { double leftlimit rightlimit;/*积分上限,下限*/int n;/*梯形划分数*/ printf(""请输入被积分函数的系数

几何画板如何求函数最值

  1.选择"绘图"--"绘制新函数",在函数编辑器中输入函数表达式,点击确定后出现函数图象. 2.选择自定义工具中--函数工具--极大/极小值.单击函数f(x)的表达式,将鼠标移动到函数图象上,出现极限点标示时松开鼠标,一个极大值或极小值就记录下来.下图显示的是一个极小值坐标. 3.反复这样操作,可以求出另两个极值点坐标.这样,所有的三个极值点都已经求出来了. 4.选择"数据"--"计算",单击函数表达式,在编辑框内就自动输

HDU 1848 SG函数

这题运用博弈中的SG函数解决的,感觉初级博弈题用这个很好用但是难一些的还是不会求SG值,就是SG的模板题. #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int k,fib[1000],f[10001]; int mex1(int p) { int i,t; bool g[101]= {0}; for(i=0; i

几何画板如何绘制导函数图像求函数极值

  具体的操作步骤如下: 1.打开几何画板软件,"绘图"--"绘制新函数",在函数编辑器中输入下图中的函数解析式,点击"确定"即可. 在函数编辑器输入函数解析式 2.右键函数解析式,选择"定义导函数",出现导函数解析式.右键导函数,选择"绘制函数",在绘图区域中会出现原函数的导函数(蓝色). 右键函数定义导函数并绘制导函数图像 3.选定绘制的导函数图像和x轴,"构造"--"交点

HDU 3977 求斐波那契循环节

题意:求斐波那契数列模一个数的循环节的长度. 分析过程:首先我们知道fib数列模p如果出现了连续的1,0就意味这着开始循环了,因为接下来的项就是1 1 2 3 5等等. 那么很显然如果在第k位第一次出现了1,0,那么对于以后的1,0都可以表示为k*m.   那么,现在我们考虑如果fib数列模p在第pos位第一次出现了0,那么设0前面的那个数为a,则接下来的序列将是a,0,a, a,2a,3a,5a,8a,.....可以看出a的系数就是一个fib数列,那么我们就可以得到fib(k+i)%p=a*f

HDU 1536 SG函数

这题也是一道sg函数的模板题,没有任何变形,明确了允许移动的数目范围后可以用SG函数直接解决,记住SG要将S数组中的数从小到大排序. #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int k,num[120],f[10002]; int mex1(int p) { int i,t; bool g[101]= {0}

HDU 1115 求多边形重心

一个均匀的多边形重心为 横纵坐标和分别除以六倍的面积. #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #include<set> using namespace std; struct point { double x,y; void input() { sca

HDU 1286 找新朋友(欧拉函数模板)

HDU 1286 找新朋友:http://acm.hdu.edu.cn/showproblem.php?pid=1286 题意:中文题. 思路:欧拉函数的纯模板题,没什么好说的,主要是理解欧拉函数的意义. 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等. 例如φ(8)=4,因为1,3,5,7均和8互质.   ----by度娘. 更多精彩内容:http://www.bia

HDU 1411 校庆神秘建筑(欧拉四面体公式)

HDU 1411:http://acm.hdu.edu.cn/showproblem.php?pid=1411 大意:人一个你一个六面体的六条边,求六面体的体积. 思路:没有什么思路,就是用欧拉四面体公式直接代入. 欧拉四面体公式: 具体的推导网上有很多.eg.  http://blog.csdn.net/archibaldyangfan/article/details/8035332 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Pro