?前言?
今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0 4.25日每日一题——小车车~
🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人 ?联系方式:2201891280(QQ) ?全文大约阅读时间: 20min
P1258 小车问题
解题思路
简单来说就是没有等待时间肯定是最省的,所以就是第一个人送到半道丢下来自己走,把第二个人带上 然后走到终点的时候第一个人刚好到一定是时间最短。然后就是随手一推 ,得到结果直接打印。。。嗐
b
?
x
+
a
?
y
=
s
返
回
接
人
时
间
:
(
b
?
a
)
?
x
/
(
a
+
b
)
=
z
拉
到
最
后
位
置
时
间
等
式
:
y
?
z
=
(
s
?
(
x
+
z
)
?
a
)
/
b
化
简
,
消
去
z
:
y
?
(
b
?
a
)
?
x
/
(
a
+
b
)
=
s
/
b
?
x
?
a
/
b
?
(
b
?
a
)
?
x
/
(
a
+
b
)
?
a
/
b
y
+
(
?
(
b
?
a
)
/
(
a
+
b
)
+
a
/
b
+
(
b
?
a
)
/
(
a
+
b
)
?
a
/
b
)
?
x
=
s
/
b
a
b
y
+
a
(
3
?
a
?
b
)
/
(
a
+
b
)
?
b
x
=
a
s
消
去
y
:
(
a
+
b
)
b
(
s
?
b
x
)
+
a
b
x
(
3
a
?
b
)
=
a
s
(
a
+
b
)
t
(
3
a
2
?
a
b
?
a
b
?
b
2
)
b
x
=
(
a
?
b
)
(
a
+
b
)
s
因
式
分
解
:
(
3
a
+
b
)
(
a
?
b
)
b
x
=
(
a
?
b
)
(
a
+
b
)
s
x
=
(
a
+
b
)
/
(
(
3
a
+
b
)
?
b
)
s
y
=
(
s
?
b
x
)
/
a
=
(
s
?
(
a
+
b
)
/
(
3
a
+
b
)
s
)
/
a
=
2
/
(
3
a
+
b
)
s
t
i
m
e
=
x
+
y
=
(
a
+
3
b
)
?
s
/
(
(
3
a
+
b
)
?
b
)
b * x + a * y = s\\ 返回接人时间: (b-a)*x/(a+b) = z\\ 拉到最后位置时间等式: y - z = (s - (x + z)*a)/b\\ 化简,消去z: y - (b-a)*x/(a+b)=s/b - x*a/b - (b-a)*x/(a+b)*a/b \\ y + (-(b-a)/(a+b) +a/b + (b-a)/(a+b)*a/b)*x = s/b\\ aby + a(3 * a - b)/(a +b) *bx = as\\ 消去y: (a +b)b(s-bx) + abx(3a - b) = as(a + b)t\\ (3a^2 -ab -ab-b^2)bx = (a-b)(a+b)s\\ 因式分解:(3a+b)(a-b)bx = (a-b)(a+b)s\\ x = (a +b)/((3a +b)*b)s\\ y = (s-bx)/a = (s- (a+b)/(3a+b)s)/a = 2/(3a+b)s\\ time = x + y = (a + 3b)*s/((3a +b)*b)
b?x+a?y=s返回接人时间:(b?a)?x/(a+b)=z拉到最后位置时间等式:y?z=(s?(x+z)?a)/b化简,消去z:y?(b?a)?x/(a+b)=s/b?x?a/b?(b?a)?x/(a+b)?a/by+(?(b?a)/(a+b)+a/b+(b?a)/(a+b)?a/b)?x=s/baby+a(3?a?b)/(a+b)?bx=as消去y:(a+b)b(s?bx)+abx(3a?b)=as(a+b)t(3a2?ab?ab?b2)bx=(a?b)(a+b)s因式分解:(3a+b)(a?b)bx=(a?b)(a+b)sx=(a+b)/((3a+b)?b)sy=(s?bx)/a=(s?(a+b)/(3a+b)s)/a=2/(3a+b)stime=x+y=(a+3b)?s/((3a+b)?b)
#include <stdio.h>
int main(){
double s,a,b;
scanf("%lf %lf %lf",&s, &a,&b);
printf("%.6f",(a+3*b)/(b+3*a)*s/b);
return 0;
}
📑写在最后
今天就这样,明日再见0.0
|