分析

对于每一个点只要维护它前面/后面的一小一大组合的数量

对于这个可以维护两个树状数组

然后从前往后/从后往前分别扫一遍相乘即可

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
#define int long long
const int mod = ;
#define add(x,y) x=(x+y)%mod
#define del(x,y) (x-y+mod)%mod
inline int lb(int x){return x&(-x);}
int a[],b[],sum1[],sum2[],h[],n,m;
inline void add_a(int x,int k){while(x<=m)add(a[x],k),x+=lb(x);return;}
inline void add_b(int x,int k){while(x<=m)add(b[x],k),x+=lb(x);return;}
inline int q_a(int x){int res=;while(x)add(res,a[x]),x-=lb(x);return res;}
inline int q_b(int x){int res=;while(x)add(res,b[x]),x-=lb(x);return res;}
signed main(){
int i,j,k;
scanf("%lld",&n);
for(i=;i<=n;i++){
scanf("%lld",&h[i]);
m=max(m,h[i]);
}
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(i=;i<=n;i++){
add_a(h[i],);
add_b(h[i],del(q_a(m),q_a(h[i])));
sum1[i]=q_b(h[i]-);
}
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(i=n;i>;i--){
add_a(h[i],);
add_b(h[i],del(q_a(m),q_a(h[i])));
sum2[i]=q_b(h[i]-);
}
int ans=;
for(i=;i<=n;i++)
ans=(ans+1ll*sum1[i]*sum2[i]%mod)%mod;
cout<<ans<<"\n";
return ;
}

最新文章

  1. Unity3D移动平台动态读取外部文件全解析
  2. React Native 之生命周期
  3. 使用angularjs定义html中的属性ng-attr-(suffix)
  4. 抽象类和抽象方法(关键字abstract)
  5. 标准 DateTime 格式字符串
  6. Bulk Insert的用法 .
  7. servlet等一些砸碎的
  8. application/x-www-form-urlencoded
  9. memcache运维整理
  10. Windows使用WxWidgets开发界面(c++)环境搭建
  11. 3篇OAuth的文章
  12. java类与对象(属性,方法)的使用
  13. .NET MVC 简单的插件式开发
  14. 树莓派与Linux系统之间文件传输
  15. Android基础知识学习
  16. 在 Docker 中使用 mysql 的一些技巧
  17. 把ResNet-L152模型的ckpt文件转化为pb文件
  18. day32 信号量 事件 管道 进程池
  19. html-prepend
  20. node.js express开发web问题

热门文章

  1. 应用安全-Web安全-注入篇
  2. Mac014--Sourcetree安装(Git client)
  3. 压缩图片工具类,压缩100KB以内拿走直接用
  4. Queen Attack -- 微软2017年预科生计划在线编程笔试第二场
  5. [Python3 填坑] 003 关键字?保留字?预留字?
  6. 持续集成工具——Jenkins
  7. vue 中使用style(样式)
  8. 07.SUSE Linux 系统本地yum源配置
  9. 小程序Page里的函数比app.js先执行的解决办法
  10. [python 学习]正则表达式