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 @ 2021-08-01 12:27  BFNewdawn  阅读(77)  评论(0)    收藏  举报
编辑推荐:
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
· 协程本质是函数加状态机——零基础深入浅出 C++20 协程
· 编码之道,道心破碎。
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
阅读排行:
· 历时半年,我将一个大型asp.net的零代码快速开发平台转成了java
· C#实现语音预处理:降噪、静音检测、自动增益(附Demo源码)
· 推荐五大AI+MCP自动化测试工具!
· 记一次 .NET 某无语的电商采集系统 CPU爆高分析
· Spring Boot 启动优化实践
点击右上角即可分享
微信分享提示