首页 > 试题广场 >

小苯的区间删除

[编程题]小苯的区间删除
  • 热度指数:958 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小苯有一个长度为 n 的数组 a,他想要使得数组 a 有序(单调不降)。
为此,他必须选择一段区间 [l, r], (1\leq l \leq r \leq n),将数组的这一段删除,其他的部分(如果存在的话)就按顺序拼在一起。
现在他想知道有多少种不同的选择区间的方案。

注:小苯认为,空数组也满足有序,即你可以选择 [1,n] 这个区间。

输入描述:
输入包含两行。
第一行一个正整数 n, (1 \leq n \leq 2 \times 10^5),表示数组的长度。
第二行 n 个正整数 a_i, (1 \leq a_i \leq 10^9),表示数组 a


输出描述:
输出一行一个正整数表示答案。
示例1

输入

3
1 2 3

输出

6

说明

可以选择:
[1, 1], [2,2],[3,3],[1,2],[2,3],[1,3]
这六个区间。
示例2

输入

5
1 3 2 2 5

输出

10
头像 丨阿伟丨
发表于 2025-09-18 11:42:04
题目链接 小苯的区间删除 题目描述 给定一个长度为 的数组 ,他必须选择一个连续的区间 并将其删除。 剩下的前缀部分和后缀部分(如果存在)将按原顺序拼接在一起,形成一个新数组。 我们需要计算,有多少种不同的区间 ()的选择方案,可以使得最终拼接成的数组是单调不降的。 注意:空数组和只包含一个元素 展开全文
头像 Silencer76
发表于 2025-03-31 14:31:46
题目链接 小苯的区间删除 题目描述 小苯有一个长度为 的数组 ,他想要使得数组有序(单调不降)。为此,他必须选择一段区间 ,将数组的这一段删除,其他的部分(如果存在的话)就按顺序拼在一起。 现在他想知道有多少种不同的选择区间的方案。注:小苯认为,空数组也满足有序,即你可以选择 这个区间。 输入: 展开全文