传送门:https://ac.nowcoder.com/acm/contest/9925/D
题意
在一段[0,n]的区间内,有两个人分别站在p1和p2的位置,都有各自的速度v1,v2。 问:如何用最少时间能覆盖[0,n]区间,也就是怎么走完全程?
思路
如果一直分类讨论的话,官方解答是有13种,不过就凭我们这个猪脑子怎么可能想出来,所以我们就按以下三种分别讨论。
- 一个人走完全程 $ans = min((min(n - p1, p1)+n)/v1,(min(n-p2,p2)+n)/v2)$
- 两个人对向走完全程 $ans=min(ans, max((n-p1)/v1, p2/v2))$
- 两个人分别以一个间断点mid,p1走[0,mid],p2走[mid,n],走完全程 二分mid,然后取最小值。
Code(55MS)
1 | # |
如果当时没有死磕这道题,那就会有大量的时间做其他题了。 这是第三次死盯一道题,如果还有下次,不可能有下次了!!!
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2020/12/17/2020-icpc-shanghai-d/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!