每日一题 day51 打卡

Analysis

这道题是用非常恶心的三分套三分做的,有一个技巧是不要枚举坐标,枚举两条线段构成三角形的相似比就好了。

了解思路就还挺好写的(尽管我还调了三天)

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #define int long long
  7. #define rep(i,s,e) for(register int i=s;i<=e;++i)
  8. #define dwn(i,s,e) for(register int i=s;i>=e;--i)
  9. using namespace std;
  10. inline int read()
  11. {
  12. int x=,f=;
  13. char c=getchar();
  14. while(c<''||c>'') {if(c=='-') f=-; c=getchar();}
  15. while(c>=''&&c<='') {x=x*+c-''; c=getchar();}
  16. return f*x;
  17. }
  18. inline void write(int x)
  19. {
  20. if(x<) {putchar('-'); x=-x;}
  21. if(x>) write(x/);
  22. putchar(x%+'');
  23. }
  24. struct node
  25. {
  26. double x,y;
  27. }a,b,c,d;
  28. double p,q,r;
  29. inline node calc_point(node a,node b,double k)
  30. {
  31. node point;
  32. point.x=(b.x-a.x)*k+a.x;
  33. point.y=(b.y-a.y)*k+a.y;
  34. return point;
  35. }
  36. inline double calc_dis(node a,node b)
  37. {
  38. return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
  39. }
  40. inline double check_two(double k1,double k2)
  41. {
  42. node point_one=calc_point(a,b,k1),point_two=calc_point(c,d,k2);
  43. double dis1=calc_dis(a,point_one)/p,dis2=calc_dis(point_one,point_two)/r,dis3=calc_dis(point_two,d)/q;
  44. return dis1+dis2+dis3;
  45. }
  46. inline double check_one(double k)
  47. {
  48. double l2=0.0,r2=1.0;
  49. while(r2-l2>1e-)
  50. {
  51. double mid12=l2+(r2-l2)/3.0,mid22=r2-(r2-l2)/3.0;
  52. if(check_two(k,mid12)>check_two(k,mid22)) l2=mid12;
  53. else r2=mid22;
  54. }
  55. return check_two(k,l2);
  56. }
  57. signed main()
  58. {
  59. scanf("%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y);
  60. scanf("%lf%lf%lf%lf",&c.x,&c.y,&d.x,&d.y);
  61. scanf("%lf%lf%lf",&p,&q,&r);
  62. double l1=0.0,r1=1.0;
  63. while(r1-l1>1e-)
  64. {
  65. double mid11=l1+(r1-l1)/3.0,mid21=r1-(r1-l1)/3.0;
  66. if(check_one(mid11)>check_one(mid21)) l1=mid11;
  67. else r1=mid21;
  68. }
  69. printf("%.2lf",check_one(l1));
  70. return ;
  71. }

请各位大佬斧正(反正我不认识斧正是什么意思)

洛谷 P2571 [SCOI2010]传送带 题解的更多相关文章

  1. 【解题报告】洛谷 P2571 [SCOI2010]传送带

    [解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...

  2. [洛谷P2571] [SCOI2010]传送带

    题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...

  3. 洛谷P2571 [SCOI2010]传送带 [三分]

    题目传送门 传送带 题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移 ...

  4. P2571 [SCOI2010]传送带——hyl天梦

    P2571 [SCOI2010]传送带题解----天梦 如写的不好,请多见谅. 对于这道题,我首先想说,确实困惑了我好久,看网上的各种题解,却都不尽人意,思路早已明白,却不会操作.最后想想,还是觉得自 ...

  5. 洛谷P2832 行路难 分析+题解代码【玄学最短路】

    洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...

  6. 【洛谷P3960】列队题解

    [洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...

  7. P2571 [SCOI2010]传送带

    P2571 [SCOI2010]传送带 三分套三分. 前提条件:P3382 [模板]三分法 三分,求区间内单峰函数的最大/最小值. 我们把两条线段都跑三分,先ab后cd,求出最小值. 可以直接将二维坐 ...

  8. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  9. 洛谷P1577 切绳子题解

    洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...

随机推荐

  1. 网络爬虫第五章之Scrapy框架

    第一节:Scrapy框架架构 Scrapy框架介绍 写一个爬虫,需要做很多的事情.比如:发送网络请求.数据解析.数据存储.反反爬虫机制(更换ip代理.设置请求头等).异步请求等.这些工作如果每次都要自 ...

  2. 微信配置JS接口安全域名问题-Nginx配置

    1.将下载的txt文件放入/usr/local/nginx/html/目录下面. 2.修改nginx.cong配置文件中的location标签 location / { root html; inde ...

  3. JAVA十六进制数据接收与传输

    一.十六进制转换工具类 主要包含十六进制字符串转ASCII,ASCII转十六进制字符串以及十六进制字符串转Byte数组等方法: /** * Created by wly on 2018/4/17. * ...

  4. kie-api介绍和使用

    参考:KIE kie在drools jbpm uberfire里广泛被使用,下面对kie-api中的几个重要组件做下简单介绍 maven依赖 <dependency> <groupI ...

  5. 1005 继续(3n+1)猜想(C#)

    一.题目内容: 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n= ...

  6. Hadoop2.x 集群搭建

    Hadoop2.x 集群搭建 一些重复的细节参考Hadoop1.X集群完全分布式模式环境部署 1 HADOOP 集群搭建 1.1 集群简介 HADOOP 集群具体来说包含两个集群:HDFS 集群和YA ...

  7. testNG 注释实例

    1. 单个测试用例文件 新建TestDBConnection.java文件 import org.testng.annotations.*; public class TestDBConnection ...

  8. Java里面获取当前服务器(linux环境)的IP地址--与请求者的真实IP

    package com.wfd360.Util; import javax.servlet.http.HttpServletRequest; import java.net.Inet4Address; ...

  9. RabbitMq 消息队列 在Python端的应用

    https://www.cnblogs.com/Xuuuuuu/p/10895552.html rabbit_server持久化,消费者端手动确认保证消息不会丢失.具体代码如下: 1对1生产者端代码: ...

  10. selenium获取元素

    1.获取窗口titledriver.title2.获取urldriver.current_url3.获取窗口截图driver.get_screenshot_as_file('window.png')4 ...