真简单,数据结构真简单!!
传送门 :
思路计算一个 三元上升序列 我们可以枚举 中间节点 然后通过乘法原理 记录 L e f t [ ] 和 R i g h t [ ] Left[] 和 Right[] Left[]和Right[]
当然数据范围是3e5+10 如果直接求会爆炸 所以我们还需要离散化
因为我们只需要 离散化 并且 枚举中间节点求出所有的 L e f t [ i ] ∗ R i g h t [ i ] Left[i]*Right[i] Left[i]∗Right[i]之和即是答案
CODE#include
using namespace std;
#define ll long long
#define endl '\n'
#define unmp unordered_map
#define x first
#define second
typedef pair PII;
const int N = 3e4+10;
int n,m;
int c1[N],c2[N];
int l[N],r[N];
int A[N],_A[N];
inline int hash_(int val){
return lower_bound(_A+1,_A+m+1,val) -_A;
}
inline int lowbit(int i){
return i&(-i);
}
void add(int *C,int pos,int val){
while(pos0 ){
res+=C[pos];
pos-=lowbit(pos);
}
return res;
}
void solve()
{
cin>>n;
for(int i=1;i>A[i];
_A[i] = A[i];
}
sort(_A+1,_A+n+1);
m = unique(_A+1,_A+n+1)-(_A+1);
for(int i=1;i=1;i--){
add(c2,hash_(A[i]),1);
r[i] = n-i-(sum(c2,hash_(A[i]))-1);
}
ll ans = 0 ;
for(int i=2;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?