[HDOJ5935]Car(精度,数学)

Posted tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[HDOJ5935]Car(精度,数学)相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5935

题意:有个老司机在开车, 开车过程中车的速度是不减的. 交警记录了这个老司机在nn个时间点的位置, 但是时间位置. 已知老司机从位置0出发, 记录的时间点都是整数, 问经过第nn个位置最少需要的时间.

题解:通过最后一段路程的时间肯定为 1 秒,只需由速度不降原则倒推出每一段所通过的最小整数时间即可。

原来卡了精度,好坑呀。。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 const int maxn = 100100;
 5 const double eps = 1e-9;
 6 int n, a[maxn];
 7 
 8 int main() {
 9     // freopen("in", "r", stdin);
10     int T, _ = 1;
11     scanf("%d", &T);
12     while(T--) {
13         printf("Case #%d: ", _++);
14         scanf("%d", &n);
15         for(int i = 1; i <= n; i++) {
16             scanf("%d", &a[i]);
17         }
18         int ret = 1;
19         double v = a[n] - a[n-1];
20         for(int i = n-1; i >= 1; i--) {
21             int x = a[i] - a[i-1];
22             if(x <= v + eps) {
23                 v = x;
24                 ret++;
25             }
26             else {
27                 double t = (double(x - eps) / v);
28                 ret += int(t + 1);
29                 v = (double(x) / int(t + 1));
30             }
31         }
32         cout << ret << endl;
33     }
34     return 0;
35 }

 

以上是关于[HDOJ5935]Car(精度,数学)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 5935 Car

HDU 5935 Car 模拟 (中国大学生程序设计竞赛(杭州))

5935. 小凯学数学

HDOJ1521组合数学 指数型母函数计数

HDOJ1521组合数学 指数型母函数计数

ACM--数学--HDOJ 2086--A1 = ?