hihocoder 1142 三分·三分求极值(三分)

题目1 : 三分·三分求极值

时间限制:10000ms

单点时限:1000ms

内存限制:256MB

描述

这一次我们就简单一点了,题目在此:

在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d。

提示:三分法

输入

第1行:5个整数a,b,c,x,y。前三个数构成抛物线的参数,后两个数x,y表示P点坐标。-200≤a,b,c,x,y≤200

输出

第1行:1个实数d,保留3位小数(四舍五入)

样例输入
2 8 2 -2 6
样例输出
2.437

简单三分

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <math.h>
 5 double a,b,c,x,y;
 6 double scla(double xx)
 7 {
 8     double yy;
 9     yy = a*xx*xx+b*xx+c;
10     return sqrt((xx-x)*(xx-x) + (yy-y)*(yy-y));
11 }
12 double thfind(double left,double right)
13 {
14     double midmid,mid;
15     while(left + 1e-10 < right)
16     {
17         mid = (left + right)/2;
18         midmid = (mid+right)/2;
19         if(scla(mid) < scla(midmid))
20             right = midmid;
21         else
22             left = mid;
23     }
24     return scla(left);
25 }
26 int main(void)
27 {
28     scanf("%lf %lf %lf %lf %lf",&a,&b,&c,&x,&y);
29     printf("%.3lf\n",thfind(-200,200));
30     return 0;
31 }
时间: 2024-10-11 20:08:48

hihocoder 1142 三分·三分求极值(三分)的相关文章

hihoCoder #1142 : 三分求极值

#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 提示:三分法 输入 第1行:5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 输出 第1行:1个实数d,保留3位小数(四舍五入) 样例输入 2 8 2 -2 6 样例输出 2.437

hihocoder 1142 三分求极值【三分算法 模板应用】

#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 提示:三分法 输入 第1行:5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 输出 第1行:1个实数d,保留3位小数(四舍五入) 样例输入 2 8 2 -2 6 样例输出 2.437

#1142 : 三分&#183;三分求极值 ( 三分极值 )

#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: [week40_1.PNG] 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 提示:三分法 输入 第1行:5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 输出 第1行:1个实数d,保留3位小数(四舍五入) 样例输入 2 8 2

三分&#183;三分求极值 算法讲解和题目

题目: #1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 提示:三分法 输入 第1行:5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 输出 第1行:1个实数d,保留3位小数(四舍五入) 样例输入 2 8 2 -2 6 样例输出 2

三分&#183;三分求极值

三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 输入 第1行:5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 输出 第1行:1个实数d,保留3位小数(四舍五入) 样例输入 2 8 2 -2 6 样例输出 2.437 #include <iostrea

HLJU 1221: 高考签到题 (三分求极值)

1221: 高考签到题 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 9  Solved: 4 [Submit][Status][Web Board] Description 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. Input 多组数据. 5个整数a,b,c,x,y.前三个数构成抛物线的参数,后两个数x,y表示P点坐标.-200≤a,b,c,x,y≤200 Output 1个实数d,保留

hiho一下 第四十周 题目1 : 三分&#183;三分求极值

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 提示:三分法 × 提示:三分法 在之前的几周中我们了解到二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值. 但当函数是凸形函数时,二分法就无法适用,这时就需要用到三分法. 从三分法的名字中我们可以猜到,三分法是对于需要逼近的区间做三等分: 我们发现lm这个点比rm要低,那

二分查找、三分查找求极点、二分求等比数列【模板】

二分查找: int a[110],N; int BinarySearch(int *a,int x) { int Left = a[1]; int Right = a[N]; while(Left <= Right) { int mid = (Left+Right)>>1; if(a[mid] == x) return mid; else if(a[mid] > x) Right = mid - 1; else Left = mid + 1; } return -1; } 三分查找

牛顿法求极值

在机器学习课上,Doctor夏弥 在详解了梯度下降法之后,又给出了牛顿法来求极值.当时我们却是一脸懵的,回来温习时发现,这本该就是个高中知识,丢人丢到国外了哦! 如下图所示的曲线,我们需要求的是f(x)=的解: 而对于一脸懵的原因,我想是因为我们忘记了高中所学的点斜式,直接贴一张高中数学讲义: 因为我们一路沿着x轴去寻找解,所以迭代求f(x)=0的解得通用式为: 与梯度下降相比,牛顿法也同样是沿着曲线的斜率去寻找极值,但是不存在需要自定义learning rate的问题,因为alpha是由斜率来