签到题 长沙理工大学ACMore编程协会2018年新生赛(重现赛)

链接:https://ac.nowcoder.com/acm/contest/318/B
来源:牛客网
 

题解:简单思维,暴力题,枚举以每一个元素为i边界,求得的最远j值。

代码:

#include <iostream>

using namespace std;
#define int long long
signed main(){
    //cout << "Hello world!" << endl;
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        int s[n+10];
        int ans=0;
        for(int i=0;i<n;i++) cin>>s[i];
        for(int i=0;i<n-1;i++){
            int mn=s[i];/*枚举以每一个元素为i边界*/
            int mx=s[i];/*枚举以每一个元素为i边界*/
            for(int j=i+1;j<n;j++){
                mn=min(mn,s[j]);
                mx=max(mx,s[j]);
                if(s[j]>=mx&&mn==s[i]){/*左边界就是枚举的s[i],右边界必须>最大值才可以阔右边界(每个元素的值不一样)*/
                    ans=max(ans,j-i);/*因为j=i+1,更新完的mx可能是s[j(i+1)],所以是s[j]>=mx*/
                }

            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

题目描述

IG牛逼!!!

众所周知,IG是英雄联盟S8世界总决赛冠军,夺冠之夜,数亿人为之欢呼!

赛后某百分百胜率退役ADC选手的某表情包意外走红,某苟会长看到此表情包也想模仿。

于是有n个友爱的萌新决定每人都送会长一根长为ai面包。(数据保证没有面包的长度相等)

会长无聊时把面包摆成一排,他惊人地发现他喜欢这样一类区间,区间[i, j]满足条件:

区间里的面包没有比左端点i号面包短的,同时也没有比右端点j号面包长的。

Gey会长在思考这样一个问题:
 

所有满足条件的区间中j-i的最大值是多少?

输入描述:


 

t组数据。

每组样例第一行输入整数n,接下来一行输入n个正整数。

($t\leq30$, $n\leq1000$, $a_{i}\leq1000000$)

输出描述:

输出满足条件的区间中j-i的最大值。

示例1

输入

复制

2
4
5 4 3 6
4
6 5 4 3

输出

复制

1
0
posted @ 2018-12-28 14:57  UUUUh  阅读(206)  评论(0编辑  收藏  举报