HLJU 1221: 高考签到题 (三分求极值)
1221: 高考签到题
Time Limit: 1 Sec Memory Limit: id=1221">Status
128 MB
Submit: 9 Solved: 4
[Submit][
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。保留3位小数(四舍五入)
Sample Input
2 8 2 -2 6
Sample Output
2.437
HINT
Source
解析:三分求极值,三分枚举抛物线上到定点距离近期点的横坐标x,形成的距离函数是一个凹形的抛物线。
AC代码:
#include <bits/stdc++.h>
using namespace std; double dist(double x, double y, double xx, double yy){ //两点距离的平方
return (x - xx)*(x - xx) + (y - yy)*(y - yy);
} int main(){
int a, b, c, x, y;
while(~scanf("%d%d%d%d%d", &a, &b, &c, &x, &y)){
double L, R;
if(x < -b*1.0 / (2*a)){
L = -200;
R = -b / (2*a);
}
else{
L = -b / (2*a) - 1;
R = 200;
} for(int i=0; i<100; i++){ //三分结束条件能够用R - L < eps来推断,可是非常easy出错。循环一定次数也能够达到精度
double m = L + (R - L) / 3;
double mm = R - (R - L) / 3;
if(dist(m, a*m*m + b*m + c, x, y) < dist(mm, a*mm*mm + b*mm + c, x, y)) R = mm;
else L = m;
}
printf("%.3lf\n", sqrt(dist(L, a*L*L + b*L + c, x, y)));
}
return 0;
}
HLJU 1221: 高考签到题 (三分求极值)的更多相关文章
- Hihocoder #1142 : 三分·三分求极值
1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个 ...
- hihocoder 1142 三分求极值【三分算法 模板应用】
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- hihocoder 1142 三分·三分求极值(三分)
题目1 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点 ...
- ZOJ 3203 Light Bulb( 三分求极值 )
链接:传送门 题意: 求影子长度 L 的最大值 思路:如果 x = 0 ,即影子到达右下角时,如果人继续向后走,那么影子一定是缩短的,所以不考虑这种情况.根据图中的辅助线外加相似三角形定理可以得到 L ...
- hicoder1142 三分求极值
在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 我们代入公式,有: $d = min(\sqrt{(X - x)^2+(aX^2+bX+c-y)^2 ...
- hihocoder #1142 : 三分·三分求极值
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的 ...
- HDU 4355 Party All the Time (三分求极值)
题意:给定x轴上有n个点,每一个点都有一个权值,让在x轴上选一个点,求出各点到这个点的距离的三次方乘以权值最小. 析:首先一开始我根本不会三分,也并没有看出来这是一个三分的题目的,学长说这是一个三分的 ...
- hihocoder 第四十周 三分求极值
题目链接:http://hihocoder.com/contest/hiho40/problem/1 ,一道简单的三分. 题目是在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求 ...
- hdu 4717(三分求极值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...
随机推荐
- 关于星号(**/*.java)
关于星号(**/*.java) (1)前面两个星号(**)表示在项目的所有文件夹(包括子文件夹)中的文件:*.java表示以 .java结尾的所有文件. (2)如果前面两个星号(**)没有,只有星号( ...
- sqlserver 构架与性能优化
太阳底下没有新鲜事 一.sqlserver 构架结构 1.查询优化器三阶段 1).找计划缓存如果找到直接使用 2).简单语句生成0开销的执行计划 3).正式优化 一般情况下优化到开销小于1.0就会停止 ...
- php-cgi segmentation fault nginx
谷歌.百度了一堆后,无果. yum安装软件也报segmentation fault 果断重装系统吧
- Flexigrid-Web2.0 jQuery
一.参考资料 1.jQuery插件flexiGrid的完全使用,附代码下载 2.修改flexigrid源码一(json,checkbox)[原创] 3.jQuery +UI + flexigrid做的 ...
- idea中使用FindBugs-IDEA插件
下载 - 安装 - 重启idea即可: 项目右键或者文件右键即可看到 FindBugs 选项. 选择某个选项直接检测即可.检测结果如下图: 这里的Correctness是重点关注对象.这里面的错误往 ...
- WCF+Windows2008&&sqlserver2008
这些在我的文件和云盘当中也可以在csdn中查找
- 【转载】LinearLayout 源码分析
原文地址:https://github.com/razerdp/AndroidSourceAnalysis/blob/master/LinearLayout/android_widget_Linear ...
- C#将String传入C++的char*
C++的函数参数列表中包含一个char*的输出型参数,然而在C#调用该dll时候,会自动将函数的中的char*参数“翻译”为sbyte*, 使用了各种方法都不能调用函数,主要是不能合适的转换为sbyt ...
- 一个Bean属性拷贝的工具类
package com.fpi.spring.qaepb.cps.util; import java.beans.IntrospectionException; import java.beans.P ...
- ubuntu的boot分区报警,删除无用内核文件。
1. 查看当前使用内核:uname -r4.4.0-97-generic 2. 查看安装的内核dpkg --list 'linux-image*' 3. 删除旧内核sudo apt-get remov ...