PAT T1009 Triple Inversions
2024-10-08 14:48:24
树状数组判断三元逆序对~
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+;
int a[maxn];
int c[maxn*];
long long l[maxn],r[maxn];
int lowbit (int n) {
return n&-n;
}
int main () {
int N;
scanf ("%d",&N);
for (int i=;i<N;i++) {
scanf ("%d",&a[i]);
a[i]+=;
}
for (int i=;i<N;i++) {
for (int j=a[i]+;j<maxn;j+=lowbit(j))
l[i]+=c[j];
for (int j=a[i];j>;j-=lowbit(j))
c[j]++;
}
memset (c,,sizeof(c));
for (int i=N-;i>;i--) {
for (int j=a[i]-;j>;j-=lowbit(j))
r[i]+=c[j];
for (int j=a[i];j<maxn;j+=lowbit(j))
c[j]++;
}
long long ans=;
for (int i=;i<N;i++)
ans+=(long long)l[i]*r[i];
printf ("%lld",ans);
return ;
}
最新文章
- 定位以及z-index
- [读书笔记]Java之静态分派
- java.lang.IllegalArgumentException 不合法的参数异常
- 移植samba到ios平台,最新支持ios8.3
- URAL-1987 Nested Segments 线段树简单区间覆盖
- C++_关键字
- Qt遍历图片文件
- 【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制
- 学习js的点点滴滴记录
- javascript操作select元素一例
- jspdf生成pdf并在页面展示
- yml配置文件读取出错 Exception in thread ";main"; while scanning for the next token found character &#39;\t(TAB)&#39;
- python day18 作业 Django 开发主机管理系统
- 神经网络架构PYTORCH-初相识(3W)
- jenkins(2): jenkins定时构建项目
- 如何在一个电脑上使用两个github账号
- git add 文件夹
- 为何gpio_to_irq不能静态使用?【转】
- C# Linq to Entity Lamda方式分组并求和求平均值
- 敏捷:什么是用户故事(User Story)
热门文章
- js中map和filter方法,以及search方法
- 吴裕雄 python 机器学习——数据预处理二元化Binarizer模型
- [lua]紫猫lua教程-命令宝典-L1-01-02. 变量
- Eclipse代码规范
- [已解决]Mac 升级至10.15 VM 出现黑屏等
- 1 dev repo organize
- pwnable.kr-flag-Writeup
- bootstrap创建带遮罩层的进度条
- ClickOnce部署,修改deploymentProvider
- iOS 开发之使用链式编程思想实现简单的计算器