当前位置: 首页> 教育> 锐评 > 郑州网站关键词优化外包_网络营销的常用策略_百度推广一年大概需要多少钱_友链提交入口

郑州网站关键词优化外包_网络营销的常用策略_百度推广一年大概需要多少钱_友链提交入口

时间:2025/7/13 19:52:48来源:https://blog.csdn.net/m0_75262437/article/details/147074669 浏览次数:0次
郑州网站关键词优化外包_网络营销的常用策略_百度推广一年大概需要多少钱_友链提交入口

题目 3248: 蓝桥杯2024年第十五届省赛真题-最强小队
时间限制: 2s 内存限制: 512MB 提交: 1212 解决: 264
题目描述
在蓝桥王国,一支勇士队伍依照既定的顺序排列。队伍由 n 位勇士组成,每位勇士都有一个力量值,分别为 a1, a2, . . . , an。

国王下达了一项命令,要求从这支队伍中选拔一支精英小队,这支小队需满足以下条件:

1. 小队成员必须按照原队伍的次序来组成,即小队成员的排列顺序必须与原队伍保持一致。

2. 小队的首位和末位勇士的力量必须大于小队中其他所有勇士的力量。

对于一个小队,其强度与成员数量成正比,即成员数量越多,小队越强大。

现在,国王想要知道,最强小队的成员数量是多少。请你帮他找到并计算出最强小队的成员数量。

输入格式
输入的第一行包含一个整数 n,表示勇士的数量。

第二行包含 n 个整数 a1, a2, . . . , an ,相邻整数之间使用一个空格分隔,表示每位勇士的力量值。

输出格式
输出一行包含一个整数,表示最强小队的成员数量。
样例输入复制
3
3 1 2
样例输出复制
3
提示
【样例说明】

在给定的样例中,勇士队伍的力量值为 [3, 1, 2],我们可以选择的精英小队组建方法有:

1. 只选择第一位勇士,即 [3]。

2. 只选择第二位勇士,即 [1]。

3. 只选择第三位勇士,即 [2]。

4. 选择第一位勇士和第二位勇士,即 [3, 1]。

5. 选择第一位勇士和第三位勇士,即 [3, 2]。

6. 选择第二位勇士和第三位勇士,即 [1, 2]。

7. 选择所有勇士,即 [3, 1, 2]。

显然,选择所有勇士 [3, 1, 2] 组成的小队是最强的。因此,最强小队的成员数量为 3。

【评测用例规模与约定】

对于 10% 的评测用例,1 ≤ n ≤ 102,1 ≤ ai ≤ 103。

对于 30% 的评测用例,1 ≤ n ≤ 103,1 ≤ ai ≤ 105。

对于所有评测用例,1 ≤ n ≤ 105,1 ≤ ai ≤ 109。

1.分析

        这道题很奇怪,像样例中可以选[3,2]。但是答案只考虑连续的。

        比如5  1  6  2  3  4  5

        我们可以选5 1 2 3 4 5 一共6个。

        但是答案只考虑6 2 3 4 5一共5个。基本都是用单调队列求元素i左边和右边第一个大于等于它的数。计算区间数据。

        不知道为什么,你们有什么见解呢?

2.代码

#include<iostream>
#include<stack>
using namespace std;
typedef long long LL;
const int MAX = 1e6+10;
int n, a[MAX],l[MAX],re=1,r[MAX];
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}stack<int> s;for (int i = 1; i <= n; i++) {        //求左边第一个大于它的下标if (s.empty()) {s.push(i);l[i] = i;}else {while (!s.empty() && a[i] > a[s.top()]) {s.pop();}if (s.empty()) {s.push(i);l[i] = i;}else {l[i] = s.top();s.push(i);}}}while (!s.empty()) s.pop();for (int i = n; i >=1; i--) {             //求右边第一个大于它的下标if (s.empty()) {s.push(i);r[i] = i;}else {while (!s.empty() && a[i] > a[s.top()]) {s.pop();}if (s.empty()) {s.push(i);r[i] = i;}else {r[i] = s.top();s.push(i);}}}for (int i = 1; i <= n; i++) {int t = max(i - l[i] + 1, r[i] - i + 1);re = max(re, t);}cout << re << endl;return 0;
}

        

关键字:郑州网站关键词优化外包_网络营销的常用策略_百度推广一年大概需要多少钱_友链提交入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: