LightOJ - 1425
Description It's time to remember the disastrous moment of the old school math. Yes, the little math problem with the monkey climbing on an oiled bamboo. It goes like: "A monkey is trying to reach the top of an oiled bamboo. When he climbs up 3 feet, he slips down 2 feet. Climbing up 3 feet takes 3 seconds. Slipping down 2 feet takes 1 second. If the pole is 12 feet tall, how much time does the monkey need to reach the top?"
Now we, the problem-setters, got a similar oiled bamboo. So, we thought we could do better than the traditional monkey. So, I tried first. I jumped and climbed up 3.5 feet (better than the monkey! Huh!) But in the very next second I just slipped and fell off to the ground. I couldn't remember anything after that, when I woke up, I found myself in a bed and the anxious faces of the problem setters around me. So, like old school times, the monkey won with the oiled bamboo. So, I made another plan (somehow I want to beat the monkey), I took a ladder instead of the bamboo. Initially I am on the ground. In each jump I can jump from the current rung (or the ground) to the next rung only (can't skip rungs). Initially I set my strength factor k. The meaning of k is, in any jump I can't jump more thank feet. And if I jump exactly k feet in a jump, k is decremented by 1. But if I jump less than k feet, k remains same. For example, let the height of the rungs from the ground be 1, 6, 7, 11, 13 respectively and k be 5. Now the steps are: 1. Jumped 1 foot from the ground to the 1st rung (ground to 1). Since I jumped less than k feet, k remains 5. 2. Jumped 5 feet for the next rung (1 to 6). So, k becomes 4. 3. Jumped 1 foot for the 3rd rung (6 to 7). So, k remains 4. 4. Jumped 4 feet for the 4th rung (7 to 11). Thus k becomes 3. 5. Jumped 2 feet for the 5th rung (11 to 13). And so, k remains 3. Now you are given the heights of the rungs of the ladder from the ground, you have to find the minimum strength factor k, such that I can reach the top rung. Input Input starts with an integer T (≤ 12), denoting the number of test cases. Each case starts with a line containing an integer n (1 ≤ n ≤ 105) denoting the number of rungs in the ladder. The next line contains n space separated integers, r1, r2 ..., rn (1 ≤ r1 < r2 < ... < rn ≤ 109)denoting the heights of the rungs from the ground. Output For each case, print the case number and the minimum possible value of k as described above. Sample Input 2 5 1 6 7 11 13 4 3 9 10 14 Sample Output Case 1: 5 Case 2: 6 Source
Problem Setter: Jane Alam Jan
Special Thanks: Sohel Hafiz
//题意:输入一个数字n,接下来一行输入n个数
表示你第 i 步到达的高度,问最小的爬升距离k是多少才能让你爬到杆顶?当然爬升是有规定的,如果你某一步的爬升距离等于k时,k的值就得减1,否则一直是k(某一步的爬升距离不能超过k)。
//思路:
根据题意规定可知,先求出相邻两高度之间的高度差的最大值mm,再用这个最大值mm遍历这n个高度差,看是否满足题意,若不满足,那么k==mm+1,否则k==mm;
Hait:你开始是在0高度处(在这块WA了一次)。。
|