题目描述
idyllic 现在信仰飞天意面神教,因此他认为数组里的三元对是一个神秘的东西。
现有一数组 A,若 (i,j,k) 满足 A i < A j < A k 且 i<j<k。则称 (i,j,k) 为三元对
现给你一含有 n 个元素的数组 A ,问存在多少种j 不同的三元对 (i,j,k) 。
输入描述
第一行输入一个正整数 n ( 1 ⩽ n ⩽ 100000 ) ,表示 A 数组元素个数。
第二行输入 n 个正整数(保证输入的正整数均处于 int 范围内),按下标从小到大的顺序给出 A 数组。
输出描述
一个正整数 n ,表示 j 不同的三元对 (i,j,k) 种数。
样例输入
5
1 1 4 2 3
样例输出
1
题目解析:
一开始想复杂了,看成是a[j]的个数了…wa了两次
#include <iostream>
using namespace std;
const int N=1e5+5;
int n,a[N],minn[N],maxx[N];
int ans=0;
int main()
{
cin>>n;
for (int i = 1; i <= n; i++)
{
/* code */
cin>>a[i];
}
minn[2]=a[1];
for (int i = 3; i <= n; i++)
{
/* code */
minn[i]=min(minn[i-1],a[i-1]);
}
maxx[n-1]=a[n];
for (int i =n-2; i >= 1; i--)
{
/* code */
maxx[i]=max(a[i+1],maxx[i+1]);
}
for (int i = 2; i <= n-1; i++)
{
/* code */
if (a[i]>minn[i] && a[i]<maxx[i])
{
/* code */
ans++;
}
}
cout<<ans<<endl;
return 0;
}
博客围绕数组中三元对种数问题展开。给定数组 A,若 (i,j,k) 满足 A i < A j < A k 且 i<j<k 则为三元对,题目要求计算 j 不同的三元对种数,给出了输入、输出描述及样例,还提及了题目解析情况。

被折叠的 条评论
为什么被折叠?



