hdu 5497 Inversion(树状数组)
来源:互联网 发布:淘客cms排行 编辑:程序博客网 时间:2024/09/21 09:28
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5497
解题思路:
用树状数组维护一段区间L,区间长度为m,依次枚举该区间的终点ai,即将该点加入到区间L来,把ai-m从原来的L中删除;
这里用到了两个树状数组,比较难理解。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 100005;struct Tree{int n,c[maxn];void init(int n){this->n = n;memset(c,0,sizeof(c));}int lowbit(int x){return x & -x;}void add(int i,int d){while(i <= n){c[i] += d;i += lowbit(i);}}int sum(int x){int ans = 0;while(x){ans += c[x];x -= lowbit(x);}return ans;}}L,R;int n,m,a[maxn];int main(){int t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i = 1; i <= n; i++)scanf("%d",&a[i]);L.init(n);R.init(n);long long tmp = 0,ans;for(int i = m + 1; i <= n; i++){tmp += i - m - 1 - R.sum(a[i]);R.add(a[i],1);}ans = tmp;for(int i = m + 1; i <= n; i++){tmp -= R.sum(a[i]-1);tmp -= L.sum(n) - L.sum(a[i]);R.add(a[i],-1);tmp += R.sum(a[i-m]-1);tmp += L.sum(n) - L.sum(a[i-m]);L.add(a[i-m],1);ans = min(ans,tmp);}printf("%lld\n",ans);}return 0;}
0 0
- hdu 5497 Inversion(树状数组)
- HDU 5497 Inversion(树状数组)
- hdu 5497 Inversion 求逆序对 树状数组
- HDU 5497 Inversion(树状数组求逆序对)
- 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(树状数组)
- HDU 1394 Minimum Inversion Number(树状数组)
- HDU-1394 Minimum Inversion Number 树状数组
- setjmp和longjump 用法
- Windows下从零开始学习nodejs4.X+express4.X开发--目录
- Selendroid
- 强烈推荐:程序员接私活那点事(http://www.jianshu.com/p/cfab9e80b7c4)
- Android手机APP广告植入与产品上线
- hdu 5497 Inversion(树状数组)
- java zip API实现压缩和解压缩zip包
- hdu-4764-博弈论
- (二) :美素数(打表+拆数)
- 利用ansible脚本部署项目环境说明
- 《数学之美》期望最大化
- [leetcode] 342. Power of Four
- WEB-INF目录与META-INF目录的作用
- 面试软件开发必会的排序算法