题目链接
题目分析
题目大意
n个数字,有的知道有的不知道,求(a1+a2)/(a1+a2+…+an)的最大值。
解析
想要该分式值最大,只需要让上面的值尽可能大,下面的值尽可能小即可。所以先判断a1,a2是否已知,如果都知道,则找后面的数字,后面的数字要尽可能的贴近靠右的已知的那个值。所以我们从右往左处理,将未知的值更新为他右侧第一个已知的值,求一下gcd约分即可。
代码
1 |
|
Pursue excellence; Strive for perfection.
n个数字,有的知道有的不知道,求(a1+a2)/(a1+a2+…+an)的最大值。
想要该分式值最大,只需要让上面的值尽可能大,下面的值尽可能小即可。所以先判断a1,a2是否已知,如果都知道,则找后面的数字,后面的数字要尽可能的贴近靠右的已知的那个值。所以我们从右往左处理,将未知的值更新为他右侧第一个已知的值,求一下gcd约分即可。
1 | #include <set> |