#P13244. [GCJ 2014 Qualification] Cookie Clicker Alpha

    ID: 15110 远端评测题 3000~5000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数学贪心2014Special JudgeGoogle Code Jam

[GCJ 2014 Qualification] Cookie Clicker Alpha

题目背景

Cookie Clicker is a Javascript game by Orteil, where players click on a picture of a giant cookie. Clicking on the giant cookie gives them cookies. They can spend those cookies to buy buildings. Those buildings help them get even more cookies. Like this problem, the game is very cookie-focused. This problem has a similar idea, but it does not assume you have played Cookie Clicker. Please don't go play it now: it might be a long time before you come back.

Cookie Clicker was created by Orteil. Orteil does not endorse and has no involvement with Google Code Jam.

题目描述

In this problem, you start with 00 cookies. You gain cookies at a rate of 22 cookies per second, by clicking on a giant cookie. Any time you have at least CC cookies, you can buy a cookie farm. Every time you buy a cookie farm, it costs you CC cookies and gives you an extra FF cookies per second.

Once you have XX cookies that you haven't spent on farms, you win! Figure out how long it will take you to win if you use the best possible strategy.

Suppose C=500.0C = 500.0, F=4.0F = 4.0 and X=2000.0X = 2000.0. Here's how the best possible strategy plays out:

  1. You start with 00 cookies, but producing 22 cookies per second.
  2. After 250250 seconds, you will have C=500C = 500 cookies and can buy a farm that produces F=4F = 4 cookies per second.
  3. After buying the farm, you have 00 cookies, and your total cookie production is 66 cookies per second.
  4. The next farm will cost 500500 cookies, which you can buy after about 83.333333383.3333333 seconds.
  5. After buying your second farm, you have 00 cookies, and your total cookie production is 1010 cookies per second.
  6. Another farm will cost 500500 cookies, which you can buy after 5050 seconds.
  7. After buying your third farm, you have 00 cookies, and your total cookie production is 1414 cookies per second.
  8. Another farm would cost 500500 cookies, but it actually makes sense not to buy it: instead you can just wait until you have X=2000X = 2000 cookies, which takes about 142.8571429142.8571429 seconds.

Total time: 250+83.3333333+50+142.8571429=526.1904762250 + 83.3333333 + 50 + 142.8571429 = 526.1904762 seconds.

Notice that you get cookies continuously: so 0.10.1 seconds after the game starts you'll have 0.20.2 cookies, and π\pi seconds after the game starts you'll have 2π2\pi cookies.

输入格式

The first line of the input gives the number of test cases, TT. TT lines follow. Each line contains three space-separated real-valued numbers: CC, FF and XX, whose meanings are described earlier in the problem statement.

CC, FF and XX will each consist of at least 11 digit followed by 11 decimal point followed by from 11 to 55 digits. There will be no leading zeroes.

输出格式

For each test case, output one line containing "Case #xx: yy", where xx is the test case number (starting from 11) and yy is the minimum number of seconds it takes before you can have XX delicious cookies.

We recommend outputting yy to 77 decimal places, but it is not required. yy will be considered correct if it is close enough to the correct number: within an absolute or relative error of 10610^{-6}.

4
30.0 1.0 2.0
30.0 2.0 100.0
30.50000 3.14159 1999.19990
500.0 4.0 2000.0
Case #1: 1.0000000
Case #2: 39.1666667
Case #3: 63.9680013
Case #4: 526.1904762

提示

Limits

  • 1T1001 \leq T \leq 100.

Small dataset(8 Pts)

  • Time limit: 60 3 seconds.
  • 1C5001 \leq C \leq 500.
  • 1F41 \leq F \leq 4.
  • 1X20001 \leq X \leq 2000.

Large dataset(11 Pts)

  • Time limit: 120 5 seconds.
  • 1C100001 \leq C \leq 10000.
  • 1F1001 \leq F \leq 100.
  • 1X1000001 \leq X \leq 100000.