HDU4911 Inversion 解题报告
题意:求逆序对
解题思路:1)树状数组 + 离散化
解题代码:
1 // File Name: a.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月05日 星期二 12时05分09秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque> 10 #include<stack> 11 #include<bitset> 12 #include<algorithm> 13 #include<functional> 14 #include<numeric> 15 #include<utility> 16 #include<sstream> 17 #include<iostream> 18 #include<iomanip> 19 #include<cstdio> 20 #include<cmath> 21 #include<cstdlib> 22 #include<cstring> 23 #include<ctime> 24 #define LL long long 25 26 using namespace std; 27 int n , k ; 28 LL sum = 0 ; 29 int lowbit(int x) 30 { 31 return x&(-x); 32 } 33 struct node{ 34 int num, s,rs ; 35 }a[100005]; 36 int num[100005]; 37 int getsum(int x){ 38 int sum = 0 ; 39 while(x >= 1) 40 { 41 sum += num[x]; 42 x -= lowbit(x); 43 } 44 return sum ; 45 } 46 void update(int x) 47 { 48 while(x <= n ) 49 { 50 num[x] ++ ; 51 x += lowbit(x); 52 } 53 return; 54 } 55 int cmp(node x ,node y ) 56 { 57 return x.num < y.num; 58 } 59 int cmp1(node x, node y) 60 { 61 return x.s < y.s; 62 } 63 int main(){ 64 while(scanf("%d %d",&n,&k)!= EOF) 65 { 66 memset(num,0,sizeof(num)); 67 for(int i =1;i <= n;i ++) 68 { 69 scanf("%d",&a[i].num); 70 a[i].s = i ; 71 } 72 sort(a+1,a+1+n,cmp); 73 int t = 1; 74 a[1].rs = 1; 75 for(int i = 2;i <= n;i ++) 76 { 77 if(a[i].num == a[i-1].num) 78 a[i].rs = t ; 79 else { 80 t++; 81 a[i].rs = t; 82 } 83 } 84 sort(a+1,a+1+n,cmp1); 85 sum = 0 ; 86 for(int i = 1;i <= n;i ++) 87 { 88 sum += (getsum(n)- getsum(a[i].rs)); 89 update(a[i].rs); 90 } 91 if(sum > k) 92 cout << sum-k << endl; 93 else printf("0\n"); 94 } 95 return 0; 96 }
View Code
2)归并排序
转载于:https://www.cnblogs.com/zyue/p/3906424.html
HDU4911 Inversion 解题报告相关推荐
- uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)
线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报 分类: ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(十三)中国剩余定理(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(四)生成函数(ACM/ OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- 解题报告(五)组合计数(ACM / OI)超高质量题解
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
最新文章
- Delphi中文件名函数-路径、名称、子目录、驱动器、扩展名
- 用python画烟花-python实现烟花小程序
- git/github的使用
- 共享库中的位置无关代码(PIC)
- IOS之Swift5.x开发通讯录实战
- C语言学习笔记---指针和数组
- 中兴路西藏北路到浦东国际机场路线(ddmap20100114)
- Futter基础第10篇: 实现替换路由、返回到根路由
- 卡片书签——简洁的 Chrome 书签扩展
- Android 存储学习之SQLite数据库的基本操作
- 火狐浏览器Firefox怎样设置中文
- 数据采集:如何自动化采集数据?
- win10 网卡优先级修改
- Python数据分析实战01-商铺数据的清洗和存储(附资源文件)
- win10系统如何telnet服务器,win10专业版官网系统如何开启telnet服务的办法
- Manifest is not valid JSON. Line: 1, column: 1 项目打包报错解决方法
- unity 2d贴图
- 虚拟号码认证如何开通?
- 前端高频面试题-场景题
- 拓嘉辰丰:拼多多订单退款流程有哪些?
热门文章
- eclipse java工程目录_转载:Eclipse下的java工程目录
- iptables 配置后连接不上数据库_Linux服务器配置-VSFTP服务配置(三)
- python爬虫cookie池 与ip绑定_Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租
- 160 - 48 DueList.3
- 十一、非规则组织分析及其数学模型——芦席斜纹组织
- 容器宿主机数据库_解决Docker容器内访问宿主机MySQL数据库服务器的问题
- git远程仓库上传及本地仓库创建
- HDU 5730——Shell Necklace
- 套接字编程--1(UDP协议编程,端口号,传输层协议,网络字节序)
- Linux中wait()函数及waitpid()函数