前言

真简单,数据结构真简单!!

传送门 :

思路

计算一个 三元上升序列 我们可以枚举 中间节点 然后通过乘法原理 记录Left[]和Right[]Left[] 和 Right[]Left[]和Right[]

当然数据范围是3e5+10 如果直接求会爆炸 所以我们还需要离散化

因为我们只需要 离散化 并且 枚举中间节点求出所有的Left[i]∗Right[i]Left[i]*Right[i]Left[i]∗Right[i]之和即是答案

CODE

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define unmp unordered_map<int,int>
#define x first
#define second
typedef pair<int,int> 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(pos<=N){C[pos] +=val;pos+=lowbit(pos);}
}int sum(int *C,int pos){int res = 0 ;while(pos >0 ){res+=C[pos];pos-=lowbit(pos);}return res;
}
void solve()
{cin>>n;for(int i=1;i<=n;i++){cin>>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<=n;i++){add(c1,hash_(A[i]),1);l[i] = sum(c1,hash_(A[i])-1);}for(int i=n;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<n;i++)ans +=  l[i]*r[i];cout<<ans<<endl;
}int main()
{ios::sync_with_stdio(false);//int t;cin>>t;while(t -- )solve();return 0;
}

[luogu] P1637 三元上升子序列 树状数组相关推荐

  1. CF452F Permutations/Luogu2757 等差子序列 树状数组、Hash

    传送门--Luogu 传送门--Codeforces 如果存在长度\(>3\)的等差子序列,那么一定存在长度\(=3\)的等差子序列,所以我们只需要找长度为\(3\)的等差子序列.可以枚举等差子 ...

  2. luogu P2344 奶牛抗议 DP 树状数组 离散化

    P2344 奶牛抗议 最新讨论 暂时没有讨论 题目背景 Generic Cow Protests, 2011 Feb 题目描述 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在 ...

  3. 【DP】【树状数组】方伯伯的玉米田/优美玉米(luogu 3287/金牌导航 数据结构优化DP-5)

    正题 luogu 3287 金牌导航 数据结构优化DP-5 题目大意 有n个玉米,给出高度,你可以选择一个区间,使这个区间的玉米高度+1,你可以进行k次这样的操作,查询你操作完后最长不下降子序列最大值 ...

  4. luogu 2717 寒假作业 (树状数组)

    题目背景 zzs和zzy正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有n项寒假作业.zzy给每项寒假作业都定义了一个疲劳值Ai,表示抄这个作业所要花的精力.zzs现在想要知道,有多少 ...

  5. Luogu P4178 Tree (点分治 + 树状数组)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...

  6. 最长上升子序列(LIS)/最长不上升子序列问题算法详解+例题(树状数组/二分优化,看不懂你来打我)

    目录 最长上升子序列 一.朴素做法O(2n)O(2^n)O(2n) 二.优化做法O(nlogn)O(nlogn)O(nlogn) 三.例题引入:P1020 导弹拦截(求最长上升子序列和最长不上升子序列 ...

  7. 最长上升子序列三种模板(n^2模板,二分模板,树状数组模板)

    最长上升子序列(LIS)是动态规划的入门.总结下来,经常用的模板一共有三种,分别为n^2模板,二分模板,树状数组模板. n^2模板代码如下: //n^2算法,本质就是dp,采用二重循环的方式.对于数据 ...

  8. 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)

    正题 luogu 7302 金牌导航 数据结构优化DP-4 题目大意 在坐标轴上会出现n个金币,第i个金币tit_iti​时在wiw_iwi​出现(只出现一个单位时间),价值为sis_isi​,当你t ...

  9. 【LCT】【树状数组】Matches Are Not a Child‘s Play(luogu CF1137F)

    正题 luogu CF1137F 题目大意 定义一棵树的产出序列为依次删除权值最小的叶子节点的顺序 进行q此操作: 1.把一个点的权值改为当前树中的最大权值+1 2.查询一个点在删除序列中的位置 3. ...

最新文章

  1. python3.7.4安装(Windows10)
  2. Hadoop 新增删除节点
  3. 高效开发 Android App 的 10 个建议
  4. 编译源码时出现 Checking API: checkapi-last (unknown): error 17解决方法
  5. 大专生自学web前端到找到工作的经验
  6. springboot+mybatis+druid 多数据源整合
  7. ubuntu 打开ssh登陆_Ubuntu开启SSH远程登录
  8. 评定数据之间的相似度指标----距离
  9. 英文版一元购源码开发解析
  10. 度分秒在线计算机,科学计算器在线计算
  11. Meta标签中 http-equiv属性详解
  12. 【文献阅读笔记】之Label Refinement Network for Coarse-to-Fine Semantic Segmentation
  13. mysql utf8mb4 错_MYSQL保存特殊字符失败,用编码utf8mb4解决错误 Incorrect string value ...解决方法...
  14. word参考文献交叉引用一次性更新全部域
  15. 桌面云、云桌面的区别
  16. 通过Gearman实现MySQL到Redis的数据复制
  17. 什么是json对象?
  18. 构建统一监管制度 加快数据要素立法修法
  19. “低代码,零代码,APAAS”是什么?怎么选?
  20. JS对象,JSBOM和JSDOM的介绍以及基本运用(JavaScript的基础使用)

热门文章

  1. 【网站】数字滚动效果的实现方法
  2. 心知天气API如何调用与json数据如何显示
  3. 经常调试笔记本服务器显示器,瞎折腾!闲置损坏笔记本电脑改造的DIY液晶显示屏!蜗牛星际附件。...
  4. win10装的AutoCAD 2012版,右上角最小化不显示的解决办法
  5. 什么样的公司才需要办理ICP经营许可证?
  6. 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
  7. 【pureftp】解决filezilla连接ftp报错 服务器发回了不可路由的地址 使用服务器地址代替
  8. 记录一次504超时的解决方案
  9. 基于C51实现数码管的显示
  10. 如何快速查询SCI期刊JCR和ISO缩写?