CF268E Playlist
题目描述
Manao 的朋友们经常给他推荐新歌。他从不会立刻听这些新歌,而是把它们整理成一个播放列表。当他觉得自己准备好聆听新音乐时,他就打开播放列表开始听歌。
当然,有些歌 Manao 并不特别喜欢。为了让自己更加享受收到的歌曲,他发明了如下的听歌流程:
- 如果听完某首歌后 Manao 发现自己喜欢这首歌,那么他会记住它,并开始听下一首还没听过的歌。
- 如果听完某首歌后 Manao 发现自己不喜欢这首歌,那么他会把目前他喜欢的所有歌都再听一遍,然后开始听下一首还没听过的歌。
例如,Manao 的播放列表中有四首歌,分别是 A、B、C、D(按照这个顺序),并且他最终会喜欢 A 和 C,那么其实际听歌顺序如下:
1. Manao 听 A,他喜欢,记住了它。
2. Manao 听 B,他不喜欢,于是又把 A 听一遍。
3. Manao 听 C,他喜欢,也记住了它。
4. Manao 听 D,他不喜欢,于是又把 A 和 C 各听一遍。
也就是说,最终 A 被听了三遍,C 被听了两遍,B 和 D 各被听了一遍。注意,如果 Manao 某次喜欢了某首歌,那么在日后的任何一次重听中,他都不会变得不喜欢这首歌。
现在,Manao 收到了 $n$ 首歌:第 $i$ 首歌有 $l_i$ 秒长,他会以 $p_i\%$ 的概率喜欢这首歌。歌曲在播放列表中的顺序可以任意排列,所以 Manao 想知道在所有可能的顺序下,最终期望总听歌时长的最大值是多少。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 50000$)。
接下来 $n$ 行每行包含两个整数 $l_i$ 和 $p_i$($15 \leq l_i \leq 1000$,$0 \leq p_i \leq 100$),分别表示第 $i$ 首歌的时长和 Manao 喜欢它的概率(单位:百分比)。
输出格式
输出一个实数,表示所有歌曲排列方式下期望听歌总时长的最大值。答案被认为是正确的,当且仅当绝对或相对误差不超过 $10^{-9}$。
说明/提示
考虑第一个样例。如果 Manao 按照输入的顺序听歌,期望值约为 $467.5$ 秒。把第一首歌放到播放列表末尾能获得更大的期望值。
再看第二个样例。长度为 $360$ 秒的歌曲应该放在第一位;对 Manao 来说一定不喜欢的 $300$ 秒歌曲应该放在最后一位。
由 ChatGPT 5 翻译