CF86A 题解

CF86A 题解

题意

rmaxx=lf(x),f(x)=(999log10x+19x)×x

思路

看了看题目,用我们聪明的大脑一想,f(x)=(10log10x+11x)×x=x2x+x×10log10x+1,仔细一想这不就是一个开口向下的二次函数吗?于是,题目就是二次函数最值问题。

cnt=10log10x+11

所以,函数对称轴就为 cnt2

因为函数开口向下,所以:

  • x(,cnt2],函数单调递增。
  • x[cnt2,+),函数单调递减。
  • x=cnt2 时,函数有最大值。

于是,求函数图像就可以分为以下三种情况:

  1. lr<cnt2,则对于任意 x,有 f(x) 单调递增,所以有当 x=r 时,有函数最大值 f(r)
  2. cnt2<lr,则对于任意 x,有 f(x) 单调递减,所以有当 x=l 时,有函数最大值 f(l)
  3. lcnt2r,则当 x=cnt2 时,函数有最大值。

于是,这题就做出来了。

总结

  1. 二次函数最值问题。
  2. 单调性。
  3. 分类讨论。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
long long l,r,wr,cnt;
int main(){
    scanf("%lld %lld",&l,&r);
    wr=log10(r);
    cnt=pow(10,wr+1)-1; 
    if(l>=cnt/2) printf("%lld",l*(cnt-l));//f(l)处值最大 
    else if(r<cnt/2) printf("%lld",r*(cnt-r));//f(r)处值最大 
    else printf("%lld",cnt/2*(cnt-cnt/2));//对称轴处f(x)最大,输出对称轴f(x)的值 
    return 0;
}
posted @   naroto2022  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
花开如火,也如寂寞。