QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 1024 MB 總分: 100

#5593. 食品加工机

统计

你有一个配有多种可更换刀片的食物处理器,以及一些你想要加工成更小块的食物。

食物处理器在任何时候都只能安装一个刀片。每个刀片通过以特定的指数速率减小食物的平均块大小来加工食物,但它同时也有一个最大平均块大小的要求;如果食物的平均块大小对于该刀片来说太大,食物处理器就会卡住。给定起始的平均食物块大小、目标平均块大小以及一组可用的刀片,请确定将食物加工到目标平均块大小所需的最少加工时间。

注意,我们只关心主动加工食物所花费的时间;我们不计算更换刀片或装载/卸载食物处理器所花费的时间。

输入格式

输入的第一行包含三个整数 $s$、$t$ 和 $n$ ($1 \le t < s \le 10^6$, $1 \le n \le 10^5$),其中 $s$ 是起始平均块大小,$t$ 是目标平均块大小,$n$ 是刀片的数量。

接下来的 $n$ 行,每行包含两个整数 $m$ 和 $h$ ($1 \le m, h \le 10^6$)。这些是刀片的参数,其中 $m$ 是该刀片允许的最大平均块大小,$h$ 是该刀片将平均块大小减半所需的秒数。

输出格式

输出一个数字,表示将食物加工到目标平均块大小所需的最少秒数。如果无法达到目标,输出 $-1$。你的答案的相对误差应不超过 $10^{-5}$。

样例

样例输入 1

10 1 2
10 10
4 5

样例输出 1

23.219281

样例输入 2

10000 9999 1
10000 1

样例输出 2

1.4427671804501932E-4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.