站外题,急!!!
  • 板块题目总版
  • 楼主ChaoXinOvO
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/4/16 21:55
  • 上次更新2024/4/17 13:04:17
查看原帖
站外题,急!!!
1246651
ChaoXinOvO楼主2024/4/16 21:55

题目描述如下:

小Y喜欢“台阶”。在一个长度为n的数列a1..an中,a¡、aj、ak构成一个“台阶”当且仅当a¡>aj>ak且1<=i<=j<=k<=n。由于时间仓促,小Y来不及对所有台阶进行计数,于是寻求你的帮助。给定一个数列,求其中台阶的个数。

[输入格式] 输入第一行包含一个正整数n,表示数列的长度。

第二行包含n个正整数,为待求数列。

[输出格式]

输出包含一个整数,即待求数列中”台阶”的个数。

[输入样例#1]

4

4321

[输出样例#1] 4

[数据范围]

Subtask 对于所有数据,有0 < a <= 10^5, n <= 10^5。

c++树状数组题,求解,谢谢了!

以下是暴力代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 100005;

int a[N];
long long ans = 0, n;

int main(){
	scanf("%lld", &n);
	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);
	for (int k = 1; k <= n; k++)
		for (int j = 1; j <= k; j++)
			for (int i = 1; i <= j; i++)
				if (a[i] > a[j] && a[j] > a[k])
					ans++;
	printf("%lld", ans);
	
	return 0;
}

感谢各位dalao!

2024/4/16 21:55
加载中...