HDU 1394 Minimum Inversion Number 树状数组
2014-05-02 23:09
302 查看
需要注意的是应用树状数组时,0的死循环情况,所以这里要D[i]++;
#include <map> #include <set> #include <list> #include <cmath> #include<cctype> #include <ctime> #include <deque> #include <stack> #include <queue> #include <cstdio> #include <string> #include <vector> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> #define LL long long #define PI 3.1415926535897932626 using namespace std; #define MAXN 5005 int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); } int C[MAXN]; int D[MAXN]; inline void insert(int pos)//注意这里是利用杂凑以下标与对应值判断元素个数,方便计算最后结果 { while (pos<=MAXN) { C[pos]++; pos+=(pos&(-pos)); } } inline int sum(int x)//这里并不是直接求元素的和,而是利用下标对应关系求的是元素个数的和 { int sum=0; while (x>0) { sum+=C[x]; x-=(x&(-x)); } return sum; } int main() { int N; while (scanf("%d",&N)==1) { memset(C,0,sizeof(C)); memset(D,0,sizeof(D)); int Sum=0,ans;int a; for (int i=1;i<=N;i++) { scanf("%d",&D[i]); D[i]++; Sum+=(i-sum(D[i])-1); insert(D[i]); } // printf("%d\n",Sum); ans=Sum;int res=Sum; for (int i=1;i<=N;i++) { Sum=Sum-(D[i]-1)+N-D[i]; ans=min(ans,Sum); } printf("%d\n",ans); } return 0; }
相关文章推荐
- hdu-1394-Minimum Inversion Number(线段树 || 树状数组)
- hdu 1394 Minimum Inversion Number 逆序数/树状数组
- HDU 1394 Minimum Inversion Number 树状数组
- hdu 1394 Minimum Inversion Number - 树状数组
- HDU - 1394 Minimum Inversion Number(线段树 | 树状数组)
- Hdu 1394 Minimum Inversion Number(线段树或树状数组)
- HDU-1394 Minimum Inversion Number 线段树|树状数组
- HDU 1394 Minimum Inversion Number 树状数组
- HDU 1394 Minimum Inversion Number 树状数组
- 【树状数组(逆序数)】hdu 1394 Minimum Inversion Number
- HDU-1394 Minimum Inversion Number (逆序数,线段树或树状数组)
- Minimum Inversion Number - HDU 1394 树状数组
- HDU ~ 1394 ~ Minimum Inversion Number(暴力||归并排序||线段树||树状数组)
- HDU-1394 Minimum Inversion Number 树状数组
- HDU 1394 Minimum Inversion Number(线段树 或 树状数组)
- hdu-1394 Minimum Inversion Number(线段树求逆序数模板)
- HDU1394 Minimum Inversion Number
- hdu1394 Minimum Inversion Number
- HDU 1394 Minimum Inversion Number (线段树 or BIT)
- HDU 1394 Minimum Inversion Number 线段树