前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【题解】Cherry

【题解】Cherry

作者头像
MikeC
发布2022-09-21 15:00:26
2140
发布2022-09-21 15:00:26
举报
文章被收录于专栏:MikeC's Blog

题目描述

You are given n integers a_1, a_2, \ldots, a_n . Find the maximum value of max(a_l, a_{l + 1}, \ldots, a_r) \cdot min(a_l, a_{l + 1}, \ldots, a_r) over all pairs (l, r) of integers for which 1 \le l < r \le n

输入格式

The first line contains a single integer t ( 1 \le t \le 10\,000 ) — the number of test cases.

The first line of each test case contains a single integer n ( 2 \le n \le 10^5 ).

The second line of each test case contains n integers a_1, a_2, \ldots, a_n ( 1 \le a_i \le 10^6 ).

It is guaranteed that the sum of n over all test cases doesn't exceed 3 \cdot 10^5 .

输出格式

For each test case, print a single integer — the maximum possible value of the product from the statement.

输入输出样例

输入 #1

代码语言:javascript
复制
4
3
2 4 3
4
3 2 3 1
2
69 69
6
719313 273225 402638 473783 804745 323328

输出 #1

代码语言:javascript
复制
12
6
4761
381274500335

分析

假设我们有两个相邻的数 a,b\,(a\lt b),显然对于这个长度为 2 的序列的解是 a\cdot b。现在我们向 b 后面添加一个数 c,对于这个序列的解改变当且仅当两种情况:

  • 第一种情况,当 b\lt c 时,解为 a\cdot c
  • 第二种情况,当 a\gt c 时,解为 b\cdot c

对于第一种情况,显然 b\cdot c\gt a\cdot c,所以我们将 a 移出序列可以得到更优解;对于第二种情况,显然解与 a 无关。综上,我们只需要考虑序列长度为 2 的情况,因此我们只需要对所有数依次判断更新答案即可。

记得开long long ,时间复杂度 O(n)

代码

代码语言:javascript
复制
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n;
int ans;
int a[100001];
signed main(){
    scanf("%lld",&t);
    while(t--){
        memset(a,0,sizeof(a));
        ans=0;
        scanf("%lld",&n);
        for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
        for(int i=1;i<=n;i++){
            ans=max(ans,a[i]*a[i+1]);
        }
        printf("%lld\n",ans);
    }
}

最后修改:2021 年 08 月 04 日 11 : 26 AM

© 允许规范转载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 08 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 输入格式
  • 输出格式
  • 输入输出样例
    • 输入 #1
      • 输出 #1
      • 分析
      • 代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档