题目大意:
现在有n个点,给出a和b,从这n个点中选出不同的两个点x、y,使得$ax ^ 2 + by$最大。问最大值是多少。
解题思路:
首先想到的是找出最大值和最小值来,分4种情况讨论:
a > 0 && b > 0
a > 0 && b < 0
a < 0 && b > 0
a < 0 && b < 0
分成这样后发现需要找的还有次大值、次小值以及最接近0的那个值。然后当最大值或最小值和最接近0的值是同一个时还要再进行判断。到这里有点晕了。。
后来发现一种很巧妙的思路,就是用两个数组存一下$ax^2$$和$$bx$的值,然后将两者排序,直接取两者的最大值就行了。当两者的最大值用的是同一个x后再加个比较就行了。
Mycode:
1 |
|