Weakness

求数列区间 \(\{a_n\}\) 中满足 \(i < j < k, a_i > a_j > a_k\) 的 \((i, j, k)\) 对的数目。

设对 \(a_i\),左侧大于 \(a_i\) 的数的数目为 \(L_i\),右侧小于 \(a_i\) 的数的数目为 \(R_i\),易知答案为 \(\sum_i L_i R_i\)。

构建数值大小线段树,\(L_i\) 即为 \(i - \text{query}(1, A_i)\),反向建树同理可得 \(R_i\)。

#include <cstdio>
#include <cstring>
#include <algorithm>
#define lson k<<1, l, mid
#define rson k<<1|1, mid+1, r
using namespace std; int n, A[1000003], L[1000003], R[1000003], M;
int t[1000003<<2];
long long ans; void modify(int k, int l, int r, int x) {
if (l==r&&l==x) {++t[k]; return; }
register int mid=l+r>>1;
if (x<=mid) modify(lson, x);
if (mid<x) modify(rson, x);
++t[k];
}
int query(int k, int l, int r, int x, int y) {
if (x<=l&&r<=y) return t[k];
register int mid=l+r>>1, res=0;
if (x<=mid) res+=query(lson, x, y);
if (mid<y) res+=query(rson, x, y);
return res;
} int main() {
scanf("%d", &n);
for (int i=1; i<=n; ++i) scanf("%d", &A[i]), M=max(M, A[i]);
for (int i=1; i<=n; ++i) modify(1, 1, M, A[i]), L[i]=i-query(1, 1, M, 1, A[i]);
memset(t, 0, sizeof t);
for (int i=n; i; --i) {modify(1, 1, M, A[i]); if (A[i]-1) R[i]=query(1, 1, M, 1, A[i]-1); else R[i]=0; }
for (int i=1; i<=n; ++i) ans+=(long long)L[i]*R[i];
printf("%lld\n", ans);
return 0;
}

11 November的更多相关文章

  1. Mysql - 函数

    Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一.数学函数 ...

  2. MySQL函数

    MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ...

  3. 【转】MySql中的函数

    原文:http://www.cnblogs.com/kissdodog/p/4168721.html MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: ...

  4. mysql常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. 注:对大小写不敏感 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大 ...

  5. Mysqle 常用 函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等.             select   可以用作输出 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL ...

  6. Mysql 函数分类

    比较重要的 1 REVERSE(s)    将字符串s的顺序反过来 2 TRIM(s)          去掉字符串s开始和结尾处的空格 一.数学函数  数学函数主要用于处理数字,包括整型.浮点数等. ...

  7. salesforce 零基础开发入门学习(十五)salesforce中formula的使用(不含Date/Time)

    本文参考官方的formula介绍PDF:https://resources.docs.salesforce.com/200/latest/en-us/sfdc/pdf/salesforce_usefu ...

  8. MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  9. MySQL数据库常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 不区分大小写 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等 ...

随机推荐

  1. 多线程13-CountdownEvent

        );         ));             ));             t1.Start();             t2.Start();             _coun ...

  2. 自己写一个Layout

    1 Layout是ViewGroup的子类 LinearLayout.FrameLayout都是ViewGroup的子类,自己写的Layout也是ViewGroup的子类. 2 步骤 第一,自己的La ...

  3. 解决keil5中文注释乱码方法

    菜单上面的edit-->Configuration-->Editor-->Encoding 选择Chinese GB2312 点击OK即可解决 参考 解决keil和source in ...

  4. 通过编写串口助手工具学习MFC过程——(九)自动识别串口的方法

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  5. 计算机系统结构总结_Scoreboard and Tomasulo

    Textbook:<计算机组成与设计——硬件/软件接口>  HI<计算机体系结构——量化研究方法>          QR 超标量 前面讲过超标量的概念.超标量的目的就是实现指 ...

  6. 修改admin中App的名称与表的名称

    修改APP的名称: # coding:utf-8 from django.apps import AppConfig import os default_app_config = 'repositor ...

  7. Label显示时间

    package 第十一章; import java.awt.Button; import java.awt.Color; import java.awt.Font; import java.awt.F ...

  8. 《CSS权威指南》双鱼书详解——第二章选择器

    一.基本规则 CSS的核心特性就是能向文档中的一组元素类型应用某些规则. 二.规则结构 选择器+声明块. h1{ color:red;background:yellow;} ,声明块由一个或多个声明组 ...

  9. HTML第一课(前期知识准备)

    在正式的学习之前,我们先了解一些前端方面的常识. 一.前端是做什么? 如果有认真看过我写的预备程序员不得不知道的事儿这篇文章的同学应该清楚,前端的工作在整个项目开发中处于代码编写阶段,主要是用来做界面 ...

  10. ssm中web配置各框架的配置文件路径方式

    一.在web文件中配置 使用逗号隔开 二.在applicationContext.xml文件中配置或引用 以下是引用方式 注: <import />标签要放在所有bean配置的最前面.