https://www.luogu.org/problemnew/show/P1258(题目传送)

看题的第一眼就把题归为二分题,一直向着二分的方向走,却忽略了数学的推理。推理一番后(看了题解),发现原来如此简单。

  由题意知,若要二人一起到达B点时耗时相同且最短,则二人走的路程、坐车的路程以及走和坐车的时间相同,并且车只能回接一次。设人走的路程为x、时间为t1,坐车的时间为t2,车返回接另一个人所用时间为t3,总共人的耗时为t,则t1=x/a,t2=(s-x)/b,t3=(s-2x)/b;

t2+t3=t=(2s-3x)/b=x/a,解得x=2as/(3a+b) 故轻松地用数学解出此题。

  数学AC代码:

 #include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double s,a,b;
cin>>s>>a>>b;
double x=(*a*s)/(*a+b);
printf("%.6lf",x/a+(s-x)/b);
return ;
}

  既然是个二分题,当然也可以用二分做了。我们可以二分车回接另一个人时的位置,算出若在此位置车回接,二人到终点分别的总耗时t1、t2,若t1==t2,输出答案(因为这里浮点数精度有误差,所以定义相等为差的绝对值小于一个非常小的数(这里题目要求误差小于1e-6,所以就把这个很小的数设为1e-6)),若t1>t2,使左端点等于mid,若t1<t2,则使右端点等于mid,直至有答案产生或两端点的差距小于1e-6为止。

  二分AC代码:

 #include<iostream>
#include<cstdio>
using namespace std;
double abs(double a)
{
return a>=?a:-a;
}
int main()
{
double s,a,b;
cin>>s>>a>>b;
double l=,r=s,mid=(l+r)/;
double t1=mid/b+(s-mid)/a,t2=(mid-mid/b*a)/(a+b)+mid/b+(s-((mid-mid/b*a)/(a+b)+mid/b)*a)/b;
while(r-l>=0.0000001)
{
if(abs(t1-t2)<0.000001)
break;
else
{
if(t1>t2)
l=mid;
else
r=mid;
}
mid=(l+r)/;
t1=mid/b+(s-mid)/a,t2=(mid-mid/b*a)/(a+b)+mid/b+(s-((mid-mid/b*a)/(a+b)+mid/b)*a)/b;
}
printf("%.6lf",t1);
return ;
}

为什么要发这么一个普及难度的题呢,因为是为了提醒以后数学与信息学的联系越来越深了

洛谷P1258 小车问题(题解)的更多相关文章

  1. 洛谷——P1258 小车问题

    P1258 小车问题 题目描述 甲.乙两人同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲.乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能 ...

  2. 洛谷P1258 小车问题

    题目描述 甲.乙两人同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲.乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能使两人尽快同时到达. ...

  3. 洛谷 P1258 小车问题

    题目传送门 解题思路: 首先,每个人都要做一次车,而且两个人要同时到达,这样才能使总时间最短. 那么,我们设起点为A,终点为B,小车先带甲开到C点后甲下车走到B点,同时小车掉头与已经走到D点的乙相向而 ...

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

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

  5. 【洛谷P3960】列队题解

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

  6. 洛谷P2312 解方程题解

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

  7. 洛谷P1577 切绳子题解

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

  8. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  9. 洛谷 P1220 关路灯 题解

    Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...

随机推荐

  1. macOS 安装 Java (Homebrew)

    macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...

  2. 周一01.4安装PyCharm步骤

    安装集成开发工具 步骤一 步骤二 步骤三 步骤四

  3. chrome总是提示“请停用开发者模式运行的扩展程序”

    方法1:通过组策略的扩展白名单.要下载一个组策略管理模板 1.开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以 ...

  4. day18-网络编程基础(一)

    勿骄勿燥,还是要定下心学习,还有有些没定下心 1.基础知识 2.tcp与udp协议 3.网络套接字 4.基于c/s结构的服务器客户端的实验 开始今日份总结 1.基础知识 现有的软件,绝大多数是基于C/ ...

  5. Bootstrap日期和时间表单组件

    http://www.bootcss.com/p/bootstrap-datetimepicker/ 项目 MarketPoint

  6. 洛谷P4057

    题目描述 “无体育,不清华”.“每天锻炼一小时,健康工作五十年,幸福生活一辈子” 在清华,体育运动绝对是同学们生活中不可或缺的一部分.为了响应学校的号召,模范好学生王队长决定坚持晨跑.不过由于种种原因 ...

  7. .NET Core 实现 Redis 批量查询指定格式的Key

    一. 问题场景 Redis 作为当前最流行的内存型 NoSQL 数据库,被许多公司所使用,作为分布式缓存.我们在实际使用中一般都会为 key 带上指定的前缀或者其他定义的格式.当由于我们程序出现bug ...

  8. SpringCloud(7)服务链路追踪Spring Cloud Sleuth

    1.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可.本文主要讲述服务追踪组件zipki ...

  9. DisplayAttribute没作用,why?

    namespace WebBulletinBoard.DataAccess { using System; using System.ComponentModel.DataAnnotations; u ...

  10. DP求树的重心

    #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...