hdu 2689 Sort it(树状数组)
2017-07-12 11:22
253 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2689点击打开链接
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4693 Accepted Submission(s): 3261
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.
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
3
1 2 3
4
4 3 2 1
Sample Output
0
6
暴力可以过的题 用树状数组求逆序对写了下
Sort it
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4693 Accepted Submission(s): 3261
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.
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
3
1 2 3
4
4 3 2 1
Sample Output
0
6
暴力可以过的题 用树状数组求逆序对写了下
#include <stdio.h> #include <stdlib.h> #include <iostream> #include<algorithm> #include <math.h> #include <string.h> #include <limits.h> #include <string> #include <queue> #include <stack> #include <set> #include <vector> using namespace std; int tree[1000000]; int lowbit (int x) { return x&-x; } int getsum(int x) { int sum=0; while(x>0) { sum+=tree[x]; x-=lowbit(x); } return sum; } void add(int x,int num) { while(x<1000000) { tree[x]+=num; x+=lowbit(x); } } int main() { b956 int n=0;int s=0; while(~scanf("%d",&n)) { s=0; memset(tree,0,sizeof(tree)); for(int i=0;i<n;i++) { int nn=0; scanf("%d",&nn); add(nn,1); s+=(getsum(n)-getsum(nn)); } cout << s << endl; } }
相关文章推荐
- hdu2689 Sort it (树状数组)
- HDU2689 Sort it (树状数组求逆序数)
- HDU 2689 Sort it [树状数组]【数据结构】
- hdu 2689 Sort it 一维树状数组的应用
- hdu 2689 sort it(树状数组 逆序数)
- hdu 2689 Sort it(树状数组)
- HDU 2689 Sort it【树状数组】
- HDU 2689 Sort it(树状数组,逆序数)
- HDU 2689 Sort it (树状数组)
- HDU 2689 Sort it 简单树状数组入门
- HDU2689 Sort it【树状数组】【逆序数】
- hdu2689 树状数组 逆序数
- hdu 2689 Sort it
- hdu 1754 I Hate It(树状数组 | 线段树)
- HDU-2689-Sort it
- hdu 1754 I Hate It (树状数组)
- hdu 2689 Sort it
- HDU 2689 Sort it
- hdu 2689 Sort it(线段树)
- HDU 2689 sort it - from lanshui_Yang