题目大意
给出三个数n0(n0>0且为整数)、p0和k。
第一问:
满足
第二问:
满足
(n1和n2均为正整数)
输入格式
一行,三个数,n0、p0和k。
输出格式
一行两个小数,中间用空格隔开,各保留三位小数。
样例输入
样例1
4 1 1
样例2
4 0 1
样例输出
样例1
2.000 3.000
样例2
4.000 5.000
数据范围
第一问
第一问,很简单。
对于一个值固定的
现在讲一下O(1)的算法。
数形结合。
化成一次函数图像大概是这个样子。
横轴是n,纵轴是
不难发现,棕色阴影部分的面积就等于(n0−nk-p0)*n。
所以现在问题变成了,选一个
易证,要使面积最大,E点肯定是选在线段
此时点E′即为线段C
求E′点对应横坐标n即可,
第一个问就解决了。
第二问
第二问,在枚举n1的基础上,可以发现n2*(n0−n2k-p)的值呈一个单峰二次函数图像,可以用三分枚举最优的
接下来我们还是讲一下O(1)的算法。
依旧是数形结合。
依然是一个函数图像。
呵呵。
估计你会晕。
第二问的答案为(n0−n1k-p0)* n1+(n0−n2k-p0)*n2,也就是黄色的面积加上紫色的面积。
如何让面积和最大化呢?
一个的时候取线段C
如图,点E′和点E′′为线段C
这时我们只需找到对应的n1和n2,将n1和n2化成整数,就可以直接求出最佳答案了。

本文探讨了一个涉及整数运算和函数最大值的数学问题。通过枚举和数形结合的方法,解决两个子问题:一是求解特定条件下乘积的最大值;二是求解两个变量下表达式的最大值。
227

被折叠的 条评论
为什么被折叠?



