P1258小车问题
很多人质疑它是二分,但其实它就是二分(我会说我不会解方程吗)
据说有很多人没看懂题干在说些什么,那就不要管题干了。拿样例算一遍,我们看看样例的答案是怎么算出来的。

这是样例。看到这个数,我们很懵逼。众所周知,坐车比走路快。那么让谁先坐车,坐到哪,就是个问题。因为甲,乙两人要同时到终点,所以肯定不能坐车坐到终点。那么不妨假设让一个人坐车坐到一半(既然是假设,就随便蒙就好了),设这个过程为<1>,然后车再回去接第二个人,设这个过程为<2>,再追赶第一个人,这个过程为<3>。
设第一个人所处的位置为a1,第二个人所处的位置为a2。那么<1>是一个很一般的计算,a1=(s+a2)/2, 所用时间t=(a2-a1)/b, ans先加上t,记得用double类型。<2>是相遇问题,此时t=(a1-a2)/(b+a)(人也在走路),ans加上t ,a2+=a*t<3>是追击问题,t=(a1-a2)/(b-a) ,ans+=t,a2=a1(此时第二个人追上第一个人)。之后第一个人再坐车走。这就构成了循环。既然题目给出了精度为小数点后6位,那就循环直到 s-a1<0.000001,这样这个题就做完了,虽然代码会比解方程要长,但是思路好想。废话不多说,上代码
#include<iostream>
#include<cstdio>
using namespace std;
double s,a,b;
double t,ans;
double a1,a2;
void xc()
{
a2=(s+a1)/;
t=1.0*(a2-a1)/b;
a1+=1.0*a*t;ans+=t;
t=1.0*(a2-a1)/(b+a);
a2+=1.0*a*t;a1+=1.0*a*t;ans+=t;
t=1.0*(a2-a1)/(b-a);a2+=1.0*a*t;a1=a2;ans+=t;
//莫名其妙的把代码打成了三角...
}
int main()
{
cin>>s>>a>>b;
while(s-a1>0.000001)
{
xc(); }
ans=ans+(s-a1)/a*1.0;
printf("%.6lf",ans);
}
P1258小车问题的更多相关文章
- P1258 小车问题
P1258 小车问题 蒟蒻精神自强不息蒟蒻精神永不言败加油加油ヾ(◍°∇°◍)ノ゙yeah yeah yeah 据说这是道小学奥数题抱歉蒟蒻的我没学过奥数,算了大概三大张演草纸,不得不说这题对于蒟蒻本 ...
- 洛谷——P1258 小车问题
P1258 小车问题 题目描述 甲.乙两人同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲.乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能 ...
- 洛谷P1258 小车问题(题解)
https://www.luogu.org/problemnew/show/P1258(题目传送) 看题的第一眼就把题归为二分题,一直向着二分的方向走,却忽略了数学的推理.推理一番后(看了题解),发现 ...
- 洛谷P1258 小车问题
题目描述 甲.乙两人同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲.乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能使两人尽快同时到达. ...
- 洛谷 P1258 小车问题
题目传送门 解题思路: 首先,每个人都要做一次车,而且两个人要同时到达,这样才能使总时间最短. 那么,我们设起点为A,终点为B,小车先带甲开到C点后甲下车走到B点,同时小车掉头与已经走到D点的乙相向而 ...
- 【洛谷p1258】小车问题
(……吓人,心有余悸) 小车问题[传送门] 洛谷算法标签:: (行吧它居然是个二分[解方程的我抖抖发瑟]) 作为一个写了一页演草纸才解出来的方程,显然我要好好写一写(希望不会半途而废) 思路: 先把其 ...
- 基于pcDuino-V2的无线视频智能小车
这段时间抽空做了个智能视频小车.包含了pid电机控制.socket网络编程.多线程编程.epoll机制.gtk图形界面编程. 这是界面: 小车的底层是用的stm32f405系列的单片机+电机驱动做的一 ...
- Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。
#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...
- 两轮自平衡小车双闭环PID控制设计
两轮自平衡小车的研究意义 ...
随机推荐
- ATM-java
通过学习JAVA,我的进步不是很多,了解了不多的编程知识,但是我一直在进步,我发现我有很大的进步空间,每天都有一点点的进步使我每天都很充实.还记得我编写的第一个 经典程序“hello Word”.从那 ...
- python django day 5 database 1
from django.db import models class Blog(models.Model): name = models.CharField(max_length=) tagline ...
- queue 的基本用法
queue 1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一个元素4.pop() 删除第一个元素5.push() 在末尾加入一个元素6 ...
- ios-邮箱正则表达式判断
- (void)loadData { NSMutableArray *array = [NSMutableArray arrayWithCapacity:10]; if ([self.title is ...
- 使用InternalsVisibleToAttribute给assembly添加“友元assembly”特性遭遇"强签名"
一.如何让Intenal成员暴露给另一个程序集 我们知道Modifier为Internal的类型成员仅限于当前程序集能够访问,但是在某些情况下,我们希望将它们暴露给另一个程序集.比较典型的应用场景包括 ...
- linux下常见软件安装
读者还可以参考文档:https://download.csdn.net/download/qq_27799563/10482900 Mysql的安装过程: 解压MySQL安装包: tar -xvf M ...
- [转]C# FTP操作类
转自 http://www.cnblogs.com/Liyuting/p/7084718.html using System; using System.Collections.Generic; ...
- 混合pyqt和qtcreator
目的:测试能否用qtcreator编辑ui资源,而用python编写代码逻辑 import sysfrom PyQt4 import QtGui, uic class MyWindow(QtGui.Q ...
- redis String结构
1. 设置c的过期时间为100s 2. psetex的单位为毫秒 10000毫秒 3. getrange 获得字符的范围 4. getset 先获得旧的值,然后设置新的值 5. 设置多个值 6. 获得 ...
- 自然语言处理之:搭建基于HanLP的开发环境(转)
环境搭建比FNLP的简单,具体参考:https://github.com/hankcs/HanLP 各个版本的下载:https://github.com/hankcs/HanLP/releases 完 ...