BZOJ1857: [Scoi2010]传送带(三分套三分)
Submit: 2005 Solved: 1091
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
100 0 100 100
2 2 1
Sample Output
HINT
对于100%的数据,1<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000
1<=P,Q,R<=10
Source
Day2
#include<cstdio> #include<cmath> #include<algorithm> #define eps 1e-3 using namespace std; inline int read() {char c = getchar(); int x = 0, f = 1;while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') x = x * 10 + c - '0',c = getchar();return x * f; } int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy, P, Q, R; double dis(double x, double y, double x2, double y2) {return sqrt((x2 - x) * (x2 -x) + (y2 - y) * (y2 - y)); } double check2(double x,double y,double x2,double y2) {return dis(Ax, Ay, x, y) / P + dis(x, y, x2, y2) / R + dis(x2, y2, Dx, Dy) / Q; } double check(double x, double y) {double lx = Cx, ly = Cy, rx = Dx, ry = Dy, a, b;while(abs(rx - lx) > eps || abs(ry - ly) > eps) {double wx1 = (lx * 2 + rx) / 3, wy1 = (ly * 2 + ry) / 3,wx2 = (lx + rx * 2) / 3, wy2 = (ly + ry * 2) / 3;a = check2(x, y, wx1, wy1);b = check2(x, y, wx2, wy2);if(a > b) lx = wx1, ly = wy1;else rx = wx2, ry = wy2;}return check2(x, y, lx, ly); } int main() {#ifdef WIN32freopen("a.in","r",stdin);#endifAx = read(), Ay = read(), Bx = read(), By = read(), Cx = read(), Cy = read(), Dx = read(), Dy = read(), P = read(), Q = read(), R = read();double lx = Ax, ly = Ay, rx = Bx, ry = By;while(abs(rx - lx) > eps || abs(ry - ly) > eps) {double wx1 = (lx * 2 + rx) / 3, wy1 = (ly * 2 + ry) / 3,wx2 = (lx + rx * 2) / 3, wy2 = (ly + ry * 2) / 3;if(check(wx1, wy1) > check(wx2, wy2)) lx = wx1, ly = wy1;else rx = wx2, ry = wy2;}printf("%.2lf", check(lx, ly));return 0; }
转载于:https://www.cnblogs.com/zwfymqz/p/8987507.html
BZOJ1857: [Scoi2010]传送带(三分套三分)相关推荐
- BZOJ1857 Scoi2010 传送带 【三分】
BZOJ1857 Scoi2010 传送带 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P ...
- #10017 「一本通 1.2 练习 4」传送带+三分套三分
题目描述 原题来自:SCOI 2010 在一个 2 维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段 AB和线段CD .lxhgww 在 AB上的移动速度为 P ,在 ...
- bzoj1857 [Scoi2010]传送带
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1635 Solved: 909 [Submit][Status ...
- 上海理工大学第二届“联想杯”全国程序设计邀请赛 - Experiment Class(几何+三分套三分)
题目链接:点击查看 题目大意:在二维平面的第一象限中给出两条射线代表河流,再给出起点和终点,问从起点出发,至少经过两条河各一次后到达终点的最短路 题目分析:如果只有一条河的话就是初中数学的经典问题了, ...
- HDU - 3694 Fermat Point in Quadrangle(三分套三分/凸包)
题目链接:点击查看 题目大意:给出四个点,求出该四边形的费马点,费马点是求得一个点,到这四个点的距离最小,最后输出距离, 题目分析:三分套三分,外层三分x,内层三分y即可,不过就是目前来说遇到的所有三 ...
- HDU - 5017 Ellipsoid(三分套三分/模拟退火)
题目链接:点击查看 题目大意:给出一个椭球面的方程,求椭球面上的点与原点距离的最小值 题目分析:因为涉及到了求最小值,我们可以考虑三分,又因为每一个点都是三维的(x,y,z),不过z可以通过x和y的计 ...
- 三分的多种写法及对应的精度 三分套三分原理
https://www.luogu.org/problemnew/show/P3382 正规三分法 study from: https://blog.csdn.net/pi9nc/article/de ...
- [BZOJ1857][Scoi2010]传送带
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1786 Solved: 981 [Submit][Status ...
- 传送带(三分套三分)
这个毒瘤题 原题链接 题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的 ...
- BZOJ1857:[SCOI2010]传送带——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1857 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送 ...
最新文章
- java严格区分大小写吗_Java是否区分大小写?
- 这几个 Python 的小技巧,你会么?
- 系统要不要更新_手机经常弹出“系统更新”,到底要不要更新?用户:后悔已来不及...
- vue路由传参两种方式;vue路由传参query与params区别;vue路由跳转的带参与不带参,路由跳转传参方式:name 、 path;
- 引用类型和原始类型的对比(java)
- Specification for springger thesis Writing
- NopCommerce支持友好路由
- 系统学习NLP(六)--语义分析
- C++小游戏——打方块
- ua获取手机型号_手机UserAgent大全 - fynas实用小工具
- opencv的第一个lena图片显示
- java 机器学习库_7个最好的Java机器学习开发库
- ubuntu 20 安装 velodyne_simulator
- 如何吸引全球级「AI大咖」,BAT等大佬怎么说?
- Unity根据文字内容自动滚动显示最新文字
- JavaScript日期时间详解
- 如何使用Socks5代理IP提高网络安全性
- 手写Sping(2) :手写IOP与DI(依赖注入)
- Android 交流分享汇总
- matlab气温与NDVI相关性分析,中国植被NDVI与气候因子的年际变化及相关性研究
热门文章
- 我国芯片各细分领域龙头名单
- Python3之正则表达式详解!
- wifi 小米pro 驱动 黑苹果_小米Pro 15.6英寸(i7 8550U-MX110)游戏本黑苹果
- 开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- android缅甸语,关于unicode:Android中的缅甸语言
- Krytox VPF1525 VPF1514 VPF1506 XP Chemours DuPont
- 如何安装windows NT虚拟机
- 数据库事务隔离级别与锁
- 电视剧 | 黑镜S5E3 瑞秋洁柯小艾希莉
- win10卓越性能模式