首页 > ACM题库 > HDU-杭电 > hdu 1974 Lineland’s Airport待解决[解题报告]C++
2013
12-26

hdu 1974 Lineland’s Airport待解决[解题报告]C++

Lineland’s Airport

问题描述 :

Lineland is a strange country. As the name suggests, it� shape (as seen from above) is just a straight line, rather than some two-dimensional shape. The landscape along this line is very mountainous, something which occasionally leads to some problems. One such problem now occurs: in this modern era the king wants to build an airport to stimulate the country� economy. Unfortunately, it� impossible for airplanes to land on steep airstrips, so a horizontal piece of land is needed. To accommodate for the larger airplanes, this strip needs to have length at least L.

Over the years, the inhabitants of Lineland have become very proficient in flattening pieces of land. Given a piece a land, they can remove rock quickly. They don� want to add rock for that may lead to an unstable landing strip. To minimize the amount of effort, however, they want to remove the least amount of rock necessary to reach their goal: a flat piece of land of length L. What is this minimum amount? Because of the low-dimensional nature of Lineland, the amount of rock that needs to be removed is measured as the total area of land above the place where the landing strip is placed, rather than the volume (so in the Figure below, the amount of land removed is given by the lightly shaded area).

输入:

One line with a positive number: the number of test cases (at most 25). Then for each test case:
?One line with an integer N, 2 <= N <= 500, the number of points, and an integer L, 1 <= L <= 10 000, the necessary length to flatten.
?N lines with two integers xi and yi with 0 <= xi, yi <= 10 000 describing the landscape of Lineland. The xi are in (strictly) ascending order. At position xi the height of the landscape is yi. Between two xi the landscape has constant slope. (So the landscape is piecewise linear). The difference between xN and x1 is greater than or equal to L.

输出:

One line with a positive number: the number of test cases (at most 25). Then for each test case:
?One line with an integer N, 2 <= N <= 500, the number of points, and an integer L, 1 <= L <= 10 000, the necessary length to flatten.
?N lines with two integers xi and yi with 0 <= xi, yi <= 10 000 describing the landscape of Lineland. The xi are in (strictly) ascending order. At position xi the height of the landscape is yi. Between two xi the landscape has constant slope. (So the landscape is piecewise linear). The difference between xN and x1 is greater than or equal to L.

样例输入:

4
3 5
0 2
4 2
14 0
4 3
0 2
2 0
4 0
5 3
3 10
10 2
30 2
35 7
2 777
222 333
4444 5555

样例输出:

0.9000
0.3750
0.0000
373362.4867


  1. 为什么for循环找到的i一定是素数叻,而且约数定理说的是n=p1^a1*p2^a2*p3^a3*…*pk^ak,而你每次取余都用的是原来的m,也就是n

  2. 这道题这里的解法最坏情况似乎应该是指数的。回溯的时候
    O(n) = O(n-1) + O(n-2) + ….
    O(n-1) = O(n-2) + O(n-3)+ …
    O(n) – O(n-1) = O(n-1)
    O(n) = 2O(n-1)