[HiHoCoder]三分·三分求极值[hiho一下 第四十周]
来源:互联网 发布:2303am网络打印 编辑:程序博客网 时间:2024/05/22 07:53
时间限制: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
import java.math.BigDecimal;import java.util.Scanner;public class Main {private static String minLen(int a,int b,int c,int x,int y){double zhou = -((double)b)/(2*a);double left = -1;double right = -1;if(b*b-4*a*(c-y)<0){left = zhou<x?zhou:x;right = zhou<x?x:zhou;}else{double as = x<zhou?(-b-Math.sqrt(b*b-4*a*(c-y)))/(2*a):(-b+Math.sqrt(b*b-4*a*(c-y)))/(2*a);left = as<x?as:x;right = as<x?x:as;}/*left = x>zhou?zhou:left;right = x<=zhou?zhou:right;*/BigDecimal res = null;while(true){double lm = left+(right-left)/3;double rm = left+(right-left)/3*2;double lmval = len(a,b,c,x,y,lm);double rmval = len(a,b,c,x,y,rm);BigDecimal lvStr = new BigDecimal(lmval).setScale(3,BigDecimal.ROUND_HALF_UP);BigDecimal rvStr = new BigDecimal(rmval).setScale(3,BigDecimal.ROUND_HALF_UP);if(lvStr.equals(rvStr)&&right-left<0.0001){res = lvStr;break;}if(lmval<rmval){right = rm;}else{left = lm;}}return res.setScale(3,BigDecimal.ROUND_HALF_UP)+"";}private static double len(int a,int b,int c,int x,int y,double xx){return Math.sqrt((xx-x)*(xx-x)+Math.pow(a*xx*xx+b*xx+c-y, 2));}public static void main(String args[]){Scanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();int c = sc.nextInt();int x = sc.nextInt();int y = sc.nextInt();System.out.println(minLen(a, b, c, x, y));sc.close();}}
0 0
- [HiHoCoder]三分·三分求极值[hiho一下 第四十周]
- hiho一下 第四十周 题目1 : 三分·三分求极值
- (hiho一下)三分·三分求极值
- hiho 40 三分·三分求极值
- hiho 40 ->三分·三分求极值
- hihocoder 1142 三分·三分求极值
- hihocoder 1142 : 三分·三分求极值
- Hihocoder #1142 : 三分·三分求极值
- 三分·三分求极值 HihoCoder
- hihoCoder 1142 三分·三分求极值
- hihoCoder #1142 : 三分求极值
- hihoCoder 1142 三分求极值
- #1142 : 三分·三分求极值 ( 三分极值 )
- #1142 : 三分·三分求极值
- poj3737_三分求极值
- [HDU3400]三分求极值
- 三分求极值
- 三分求极值
- ZOJ 1002 Fire Net(基础dfs)
- ArrayList & LinkedList & Vector比较
- 经典回溯算法(八皇后问题)详解
- 【第五届河南省程序设计大赛】Metric Matrice
- 第五周 程序阅读——指针(2)
- [HiHoCoder]三分·三分求极值[hiho一下 第四十周]
- 牛津大学神经网络语言模型 OxLM 安装及使用
- 图解VC#版DirectX开发教程二 - 摄像机
- Linux修改文件权限命令
- 杭电 2603 Bone Collector(简单01背包)
- 依据judge返回结果的查错表
- 教你实现别人家的动画
- mysql 性能优化之 count(*) VS count(col)
- servlet概论http://www.iteedu.com/webtech/j2ee/javaservletsbczn/1.php