cf 61E. Enemy is weak 树状数组求逆序数(WA)
2014-10-19 15:16
399 查看
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> #include <map> #include <vector> using namespace std; long long num[1000005]; long long fz[1000005]; long long xds[1000005]; long long qs[100005]; long long hs[100005]; map <long long, int> tab; int n, ni; long long sum(int i) { long long s = 0; while(i) { s+=xds[i]; i-=(-i)&i; } return s; } void add(int i,long long d) { while(i<=n) { xds[i]+=d; i+=(-i)&i; } } int main() { scanf("%I64d",&n); for(int i=0;i<n;i++) { scanf("%I64d",&num[i]); fz[i] = num[i]; } sort(fz,fz+n); ni = unique(fz,fz+n)-fz; for(int i=0;i<ni;i++) { tab[fz[i]] = i + 1; } for(int i=0;i<n;i++) { add(tab[num[i]],1); qs[i] = sum(tab[num[i]])-1; hs[i] = (i+1-qs[i]); } long long ans = 0; for(int i=0;i<n;i++) { ans+=((hs[i]-1)*(tab[num[i]]-qs[i]-1)); } printf("%I64d\n",ans); return 0; }不知道哪里错了,好烦
相关文章推荐
- cf 61E. Enemy is weak 树状数组求逆序数(WA) 分类: Brush Mode 2014-10-19 15:16 104人阅读 评论(0) 收藏
- cf 61E. Enemy is weak 树状数组求逆序数
- 【CF】C. Glass Carving(二分 + 树状数组 + 优先队列 + 数组计数)
- NYOJ 117 求逆序数 (树状数组 + 离散化思路)
- POJ 2299 Ultra-QuickSort(树状数组入门) 求逆序数
- poj 2299 Ultra-QuickSort (树状数组求逆序数)
- POJ 3928 & HDU 2492 Ping pong(树状数组求逆序数)
- CF 121E Lucky Array 【树状数组】
- 树状数组求逆序数
- POJ 3067 Japan(树状数组/求逆序数)
- POJ 2299 Ultra-QuickSort 求逆序数 树状数组
- HDU 2838 (树状数组求逆序数)
- 树状数组—求逆序数的个数
- 【树状数组】CF 459D Pashmak and Parmida's problem
- bestcoder#58 Inversion 即 hdu5497 (树状数组维护逆序数)
- 历届试题 小朋友排队(树状数组求逆序数)
- poj3067(树状数组求逆序数)
- 树状数组求逆序数的模板
- poj 3067 Japan(树状数组求逆序数)
- POJ 3067 Japan (树状数组 + 逆序数)