题目 3334: 蓝桥杯2025年第十六届省赛真题-园艺

题目 3334: 蓝桥杯2025年第十六届省赛真题-园艺

时间限制: 2s 内存限制: 192MB 提交: 129 解决: 37

题目描述

小蓝从左到右种了 n 棵小树,第 i 棵树的高度为 hi ,相邻树的间隔相同。 小蓝想挪走一些树使得剩下的树等间隔分布,且从左到右高度逐渐上升(相邻 两棵树高度满足右边的比左边的高),小蓝想知道最多能留下多少棵树。

输入格式

输入的第一行包含一个正整数 n 。

第二行包含 n 个正整数 h1, h2, · · · , hn ,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

样例输入复制

6

3 5 4 7 6 7

样例输出复制

3

提示

【样例说明】

留下第 1、3、5 棵树,它们等间隔且从左到右高度逐渐上升。

【评测用例规模与约定】

对于 30% 的评测用例,1 ≤ n ≤ 500 ;

对于 60% 的评测用例,1 ≤ n ≤ 3000 ;

对于所有评测用例,1 ≤ n ≤ 5000 ,0 < hi < 106 。

1.分析

遍历所有开始下标和间隔。

注意要实时更新数量,可能不连续。

2.代码

cpp 复制代码
#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
const int MAX = 1e4 + 10;
typedef long long LL;
int n,a[MAX],re;
int main() {
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < n; i++) {
        for (int k = 0; k <= i; k++) {
            int num = 0, t = -1;
            for (int j = k; j < n; j += i + 1) {
                if (a[j] > t) {
                    t = a[j];
                    num++;
                    re = max(re, num);
                }
                else {
                    num = 1;
                    t = a[j];
                } 
            }
        }
    }
    cout << re << endl;
    return 0;
}
相关推荐
理智的灰太狼9 小时前
题目 3342: 蓝桥杯2025年第十六届省赛真题-红黑树
职场和发展·蓝桥杯
qq_1955516910 小时前
代码随想录60期day50
算法·leetcode·职场和发展
小羊在奋斗13 小时前
【LeetCode 热题 100】打家劫舍 / 零钱兑换 / 单词拆分 / 乘积最大子数组 / 最长有效括号
算法·leetcode·职场和发展
是乐谷14 小时前
把数据库做得能扩展:Aurora DSQL 的故事
数据库·人工智能·python·程序人生·面试·职场和发展
独行soc14 小时前
2025年渗透测试面试题总结-匿名[校招]安全服务工程师(题目+回答)
linux·python·安全·web安全·面试·职场和发展·渗透测试
客卿12317 小时前
力扣100题---字母异位词分组
算法·leetcode·职场和发展
黑不拉几的小白兔19 小时前
第十五届蓝桥杯大赛软件赛国赛Python 大学 C 组试做【本期题单: 设置密码、栈】
c语言·python·蓝桥杯
之之为知知20 小时前
数学笔记三:特殊矩阵
笔记·学习·线性代数·算法·职场和发展·矩阵·职场发展
之之为知知20 小时前
数学笔记一:标量、向量和矩阵基本概念辨析
人工智能·笔记·线性代数·数学·职场和发展·矩阵·编程基础