洛谷 P2571 [SCOI2010]传送带 题解
每日一题 day51 打卡
Analysis
这道题是用非常恶心的三分套三分做的,有一个技巧是不要枚举坐标,枚举两条线段构成三角形的相似比就好了。
了解思路就还挺好写的(尽管我还调了三天)
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<cmath>
- #define int long long
- #define rep(i,s,e) for(register int i=s;i<=e;++i)
- #define dwn(i,s,e) for(register int i=s;i>=e;--i)
- using namespace std;
- inline int read()
- {
- int x=,f=;
- char c=getchar();
- while(c<''||c>'') {if(c=='-') f=-; c=getchar();}
- while(c>=''&&c<='') {x=x*+c-''; c=getchar();}
- return f*x;
- }
- inline void write(int x)
- {
- if(x<) {putchar('-'); x=-x;}
- if(x>) write(x/);
- putchar(x%+'');
- }
- struct node
- {
- double x,y;
- }a,b,c,d;
- double p,q,r;
- inline node calc_point(node a,node b,double k)
- {
- node point;
- point.x=(b.x-a.x)*k+a.x;
- point.y=(b.y-a.y)*k+a.y;
- return point;
- }
- inline double calc_dis(node a,node b)
- {
- return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
- }
- inline double check_two(double k1,double k2)
- {
- node point_one=calc_point(a,b,k1),point_two=calc_point(c,d,k2);
- double dis1=calc_dis(a,point_one)/p,dis2=calc_dis(point_one,point_two)/r,dis3=calc_dis(point_two,d)/q;
- return dis1+dis2+dis3;
- }
- inline double check_one(double k)
- {
- double l2=0.0,r2=1.0;
- while(r2-l2>1e-)
- {
- double mid12=l2+(r2-l2)/3.0,mid22=r2-(r2-l2)/3.0;
- if(check_two(k,mid12)>check_two(k,mid22)) l2=mid12;
- else r2=mid22;
- }
- return check_two(k,l2);
- }
- signed main()
- {
- scanf("%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y);
- scanf("%lf%lf%lf%lf",&c.x,&c.y,&d.x,&d.y);
- scanf("%lf%lf%lf",&p,&q,&r);
- double l1=0.0,r1=1.0;
- while(r1-l1>1e-)
- {
- double mid11=l1+(r1-l1)/3.0,mid21=r1-(r1-l1)/3.0;
- if(check_one(mid11)>check_one(mid21)) l1=mid11;
- else r1=mid21;
- }
- printf("%.2lf",check_one(l1));
- return ;
- }
请各位大佬斧正(反正我不认识斧正是什么意思)
洛谷 P2571 [SCOI2010]传送带 题解的更多相关文章
- 【解题报告】洛谷 P2571 [SCOI2010]传送带
[解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...
- [洛谷P2571] [SCOI2010]传送带
题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...
- 洛谷P2571 [SCOI2010]传送带 [三分]
题目传送门 传送带 题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移 ...
- P2571 [SCOI2010]传送带——hyl天梦
P2571 [SCOI2010]传送带题解----天梦 如写的不好,请多见谅. 对于这道题,我首先想说,确实困惑了我好久,看网上的各种题解,却都不尽人意,思路早已明白,却不会操作.最后想想,还是觉得自 ...
- 洛谷P2832 行路难 分析+题解代码【玄学最短路】
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...
- 【洛谷P3960】列队题解
[洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...
- P2571 [SCOI2010]传送带
P2571 [SCOI2010]传送带 三分套三分. 前提条件:P3382 [模板]三分法 三分,求区间内单峰函数的最大/最小值. 我们把两条线段都跑三分,先ab后cd,求出最小值. 可以直接将二维坐 ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 洛谷P1577 切绳子题解
洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...
随机推荐
- 网络爬虫第五章之Scrapy框架
第一节:Scrapy框架架构 Scrapy框架介绍 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自 ...
- 微信配置JS接口安全域名问题-Nginx配置
1.将下载的txt文件放入/usr/local/nginx/html/目录下面. 2.修改nginx.cong配置文件中的location标签 location / { root html; inde ...
- JAVA十六进制数据接收与传输
一.十六进制转换工具类 主要包含十六进制字符串转ASCII,ASCII转十六进制字符串以及十六进制字符串转Byte数组等方法: /** * Created by wly on 2018/4/17. * ...
- kie-api介绍和使用
参考:KIE kie在drools jbpm uberfire里广泛被使用,下面对kie-api中的几个重要组件做下简单介绍 maven依赖 <dependency> <groupI ...
- 1005 继续(3n+1)猜想(C#)
一.题目内容: 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n= ...
- Hadoop2.x 集群搭建
Hadoop2.x 集群搭建 一些重复的细节参考Hadoop1.X集群完全分布式模式环境部署 1 HADOOP 集群搭建 1.1 集群简介 HADOOP 集群具体来说包含两个集群:HDFS 集群和YA ...
- testNG 注释实例
1. 单个测试用例文件 新建TestDBConnection.java文件 import org.testng.annotations.*; public class TestDBConnection ...
- Java里面获取当前服务器(linux环境)的IP地址--与请求者的真实IP
package com.wfd360.Util; import javax.servlet.http.HttpServletRequest; import java.net.Inet4Address; ...
- RabbitMq 消息队列 在Python端的应用
https://www.cnblogs.com/Xuuuuuu/p/10895552.html rabbit_server持久化,消费者端手动确认保证消息不会丢失.具体代码如下: 1对1生产者端代码: ...
- selenium获取元素
1.获取窗口titledriver.title2.获取urldriver.current_url3.获取窗口截图driver.get_screenshot_as_file('window.png')4 ...