HDU 2689 sort it - from lanshui_Yang
来源:互联网 发布:斐讯路由器端口转发 编辑:程序博客网 时间:2024/05/21 17:21
Problem Description
You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need.
For example, 1 2 3 5 4, we only need one operation : swap 5 and 4.
For example, 1 2 3 5 4, we only need one operation : swap 5 and 4.
Input
The input consists of a number of test cases. Each case consists of two lines: the first line contains a positive integer n (n <= 1000); the next line contains a permutation of the n integers from 1 to n.
Output
For each case, output the minimum times need to sort it in ascending order on a single line.
Sample Input
31 2 34 4 3 2 1
Sample Output
06题目大意:给你一个数n ,然后有1 ~ n 的一个排列,让你找出这个排列的逆序数。解题思路:此题可以用树状数组来解,树状数组的三个用途:1.单点更新,区间求和 2、区间更新,单点求和3、求逆序数。求逆序数想法较简单,请看代码:#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>using namespace std ;const int MAXN = 1e5 + 7 ;int C[MAXN] ;int n ;int lowbit(int x){ return x & -x ;}int sum(int x){ int sumt = 0 ; while (x > 0) { sumt += C[x] ; x -= lowbit(x) ; } return sumt ;}void add(int x , int d){ while (x <= n) { C[x] += d ; x += lowbit(x) ; }}int main(){ while (scanf("%d" , &n) != EOF) { int i ; int ans = 0 ; memset(C , 0 ,sizeof(C)) ; for(i = 1 ; i <= n ; i ++) { int a ; scanf("%d" , &a) ; add(a , 1) ; // 此处是整个程序的精华部分,请好好理解 ans += i - sum(a) ; // 统计逆序数 } printf("%d\n" , ans) ; } return 0 ;}
- HDU 2689 sort it - from lanshui_Yang
- HDU 2196 Computer - from lanshui_Yang
- hdu 2689 Sort it
- hdu 2689 Sort it
- HDU 2689 Sort it
- HDU-2689-Sort it
- hdu 2689 Sort it
- Sort it hdu 2689
- HDU 2689 Sort it
- hdu 2689 Sort it
- HDU-2689-Sort it
- hdu 2689 Sort it
- hdu 2689 sort it
- HDU 2112 HDU Today -- from lanshui_Yang
- HDU 2066 一个人的旅行 - from lanshui_Yang
- HDU 1556 Color the ball - from lanshui_Yang
- HDU 1251 统计难题 - from lanshui_Yang
- HDU 2602 Bone Collector - from lanshui_Yang
- 获取本地IP和子网掩码
- 【解析无线路由器信号消失原因】
- java中get和post的区别
- jsp地址栏传参数乱码问题
- 375 - Inscribed Circles and Isosceles Triangles
- HDU 2689 sort it - from lanshui_Yang
- POJ 2187 Beauty Contest【旋转卡壳求凸包直径】
- Android新建项目,或者导入项目出现R文件丢失,解决方案 .
- UVA 550 (13.07.26)
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- model子句语法
- ios自定义输出格式
- Oracle直方图解析
- 通信系统概论---多路复用技术