sort it 树状数组+逆序对
sum[i]是1-i所有1的和,而i-sum[a[i]]就是在a[i]后面的数,即在i之前出现,却比他大的数。1是加在a[i]上,即i实际应该放的位置。而c[i]是为sum做准备的
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<stdlib.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #include<string> 10 #include<set> 11 #include<cctype> 12 #include<sstream> 13 #define mem(a) memset(a,0,sizeof(a)) 14 #define LL long long 15 using namespace std; 16 const int N=1e6+5; 17 int a[N],c[N],n; 18 int lowbit(int x) 19 { 20 return x&-x; 21 } 22 void add(int x,int a) 23 { 24 while(x<=n) c[x]+=a,x+=lowbit(x); 25 } 26 int sum(int x) 27 { 28 int ans=0; 29 while(x) 30 { 31 ans+=c[x]; 32 x-=lowbit(x); 33 } 34 return ans; 35 } 36 int main() 37 { 38 while(~scanf("%d",&n)) 39 { 40 mem(c); 41 int ans=0; 42 for(int i=1;i<=n;i++) 43 { 44 scanf("%d",&a[i]); 45 add(a[i],1); 46 ans+=i-sum(a[i]); 47 } 48 printf("%d\n",ans); 49 } 50 return 0; 51 }
View Code
转载于:https://www.cnblogs.com/XXrll/p/10305404.html
sort it 树状数组+逆序对相关推荐
- Bzoj 3289: Mato的文件管理 莫队,树状数组,逆序对,离散化,分块
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MB Submit: 1539 Solved: 665 [Submit][Status][ ...
- CodeForces - 987E Petr and Permutations(树状数组+逆序对定理)
题目链接:点击查看 题目大意:给出一个长度为 n 的序列,可能打乱过 3 * n 次,也可能打乱过 7 * n + 1 次,问到底打乱过多少次 题目分析:首先看出,3 * n 和 7 * n + 1 ...
- 牛客 - tokitsukaze and Inverse Number(树状数组+逆序对定理)
题目链接:点击查看 题目大意:给出一个长度为 n 的排列 a,需要执行 q 次操作,每次操作会将区间 [ l , r ] 内的数循环右移 k 次,现在需要回答每次操作后排列的逆序对数,只需要回答奇偶即 ...
- cf1042d 树状数组逆序对+离散化
/* 给定一个数组,要求和小于t的段落总数 求前缀和 dp[i]表示以第i个数为结尾的小于t的段落总数,sum[i]-sum[l]<t; sum[i]-t<sum[l],所以只要找到满足条 ...
- HDU5196--DZY Loves Inversions 树状数组 逆序数
题意查询给定[L, R]区间内 逆序对数 ==k的子区间的个数. 我们只需要求出 子区间小于等于k的个数和小于等于k-1的个数,然后相减就得出答案了. 对于i(1≤i≤n),我们计算ri表示[i,ri ...
- POJ-3067 Japan---树状数组逆序对变形
题目链接: https://vjudge.net/problem/POJ-3067 题目大意: 日本岛东海岸与西海岸分别有N和M个城市,现在修高速公路连接东西海岸的城市,求交点个数. 解题思路: 记每 ...
- HDU - 5775 - Bubble Sort( 树状数组 + 思维 )
题目链接:点击进入 题目 题意 问在给出的冒泡排序过程中,一个数到达的最右边位置与最左边位置距离差. 思路 对于一个数,位置 i ,假设右边比它小的数有 r 个,左边比它大的数有 l 个,最右边到达的 ...
- dp 树状数组 逆序元组
wmq的队伍 发布时间: 2017年4月9日 17:06 最后更新: 2017年4月9日 17:07 时间限制: 2000ms 内存限制: 512M 描述 交大上课需要打卡,于是在上课前的 ...
- AtCoder Regular Contest 088 E - Papple Sort(树状数组+结论)
结论:每次把字符丢到最外面最优,用树状数组统计答案,把字符放到最外边后可以当成消失了,直接在树状数组上删掉就好. 感性理解是把字符丢到中间会增加其他字符的移动次数,但是丢到外面不会,所以是正确的. # ...
最新文章
- Beyond Compare 4比较文件夹要设置基键吗?
- 图像处理和计算机视觉中的经典论文(部分)
- 简单介绍:什么是Python?Python好学吗?
- redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...
- IP包的生成和发送接口(1)
- php codeigniter cookie,PHP 使用CodeIgniter删除、设置Cookie的简单示例
- update mysql.user set password_使用update命令来修改Mysql的root密码
- Memory Cleaner for Mac(内存清理工具)最新版
- mysql master slave模式,mysql复制(Replication)模式 主从(Master Slave)模式
- 学科分类号查询 计算机工程,学科分类与代码分类号查询.doc
- java统计汉字个数_java统计汉字字数的方法示例
- 惠普z800工作站bios设置_HP工作站 BIOS说明 适用Z228 Z440 Z230 Z640 Z840 Z800 Z620 Z420 Z820主板设置 -...
- 10个SQL注入工具
- 排序算法和查找算法的英文名
- 最新解决百度网盘不限速方法
- Java Test Fore
- 实验三 基于A*算法的迷宫游戏
- 华为自带浏览器无法使用
- java获取分贝_android 声音强度、分贝 大小检测 源码下载(as版)
- PLM与ERP集成,这个头疼的问题,可以这样解决!
热门文章
- python安装email模块,python 3.4.0电子邮件包安装:ImportError:没有名为'cStringIO'的模块...
- 2021年黑龙江高考成绩查询,黑龙江省招生考试信息港:2021年黑龙江高考成绩查询入口、查分系统...
- nginx中root和alias的区别
- springBoot项目启动去掉多余的启动日志
- window打开IIS
- redis的持久化之RDB的配置和原理
- ORACLE查看某个表的索引状态
- ORACLE表空间使用量查询SQL
- Android开发笔记(二十三)文件对话框FileDialog
- html里meta标签,HTML中的meta标签详解