CF1554A Cherry 题解

是一道有显然的贪心策略的题,建议难度评为普及-

简化题意,即为求 max(al,al+1,,ar)×min(al,al+1,,ar)

不妨从特殊的 ai​​​ 考虑。如果 ai​ 就是最大值,那么 ai+1min(al,al+1,,ar)​​​​​​​​​​,则删去其余所有元素对结果不会有更劣的影响,ai+1​​ 为最大值时同理。

如果最小值在 ai​​​ 或 ai+1​​ 处取得,最大值在 ai+2​​ 取得,那么我们在考虑 ai+1​ 与 ai+2​ 这个情况的时候不会对答案有更劣影响。

所以逐步比较 max(ai×ai+1)×min(ai×ai+1) 即可。

#include<bits/stdc++.h>
using namespace std;

#define int long long
#define ll long long
#define ri register int
#define il inline

const int INF=0x7fffffff,N=1e5+10;
int T,n,ans;
int a[N];

il ll read(){
    ll x=0,y=1;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-')
            y=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        x=x*10+c-'0';
        c=getchar();
    }
    return x*y;
}

signed main(){
    T=read();
    while(T--){
        n=read();
        ans=-INF;
        for(ri i=1;i<=n;i++){
            a[i]=read();
            ans=max(ans,a[i]*a[i-1]);
        }
        printf("%lld\n",ans);
    }
    return 0;
}
posted @   BFNewdawn  阅读(74)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
阅读排行:
· 【保姆级教程】windows 安装 docker 全流程
· 基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
· 由 MCP 官方推出的 C# SDK,使 .NET 应用程序、服务和库能够快速实现与 MCP 客户端
· 电商平台中订单未支付过期如何实现自动关单?
· 上周热点回顾(3.31-4.6)
点击右上角即可分享
微信分享提示