HDU 4911 Inversion 树状数组求逆序数对
来源:互联网 发布:报价管理系统 php 编辑:程序博客网 时间:2024/05/16 10:03
显然每次交换都能减少1
所以求出逆序数对数,然后-=k就好了。。。
_(:зゝ∠)_
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<set>#include<map>#include<iostream>#include<algorithm>using namespace std;#define N 100005#define ll long longll c[N+100000], maxn; inline ll Lowbit(ll x){return x&(-x);} void change(ll i, ll x)//i点增量为x { while(i <= maxn) { c[i] += x; i += Lowbit(i); } }ll sum(ll x){//区间求和 [1,x] ll ans = 0; for(ll i = x; i >= 1; i -= Lowbit(i)) ans += c[i]; return ans; }ll a[N], n, k;set<ll>s;set<ll>::iterator p;map<ll,ll>mp;int main(){ ll i; while(cin>>n>>k){ s.clear(); mp.clear(); for(i = 1; i <= n; i++)scanf("%I64d",&a[i]), s.insert(a[i]); maxn = n+100; for(p = s.begin(), i = 2; p!=s.end(); p++, i++) { mp[*p] = i; } for(i = 1; i <= n; i++)a[i] = mp[a[i]]; memset(c, 0, sizeof c); ll ans = 0; for(i = n; i >= 1; i--) { ans += sum(a[i]-1); change(a[i], 1); } ans -= k; cout<< max(0ll, ans) <<endl; } return 0;}
0 0
- HDU 4911 Inversion 树状数组求逆序数对
- hdu 4911 Inversion 树状数组求逆序数对
- Inversion (hdu 4911 树状数组 || 归并排序 求逆序对)
- 【树状数组】hdu 4911 Inversion(离散化+树状数组求逆序数)
- HDU 4911 Inversion 求逆序数对
- hdu4911——Inversion 树状数组求逆序数对
- HDU 1394 Minimum Inversion Number (树状数组求逆序数)
- HDU - 1394 Minimum Inversion Number 树状数组求逆序数
- 树状数组求逆序数 HDU-1394 Minimum Inversion Number
- hdu 1394 Minimum Inversion Number 树状数组求逆序数对(原理)
- hdu 5497 Inversion 求逆序对 树状数组
- HDU 5497 Inversion(树状数组求逆序对)
- Hdu 1394 Minimum Inversion Number 树状数组求逆序对
- hdu Minimum Inversion Number---树状数组求正序数与逆序数
- hdu 1394 Minimum Inversion Number(树状数组求逆序数)
- hdu 1394 Minimum Inversion Number 求逆序数(树状数组/归并排序/暴力)
- hdu 1394 Minimum Inversion Number(树状数组求逆序数)
- HDU 1394 - Minimum Inversion Number(树状数组求逆序数)
- C++ 学习笔记 1 预备知识
- 发微博怎么才能把自己的地理位置改成其他国家
- 获取键盘上某键的状态
- 数据库读取文件,并打包为zip包,然后下载(含另存为)
- Xcode HeaderDoc 教程(3)
- HDU 4911 Inversion 树状数组求逆序数对
- openstackLoadBalance技术
- 并查集之畅通工程 hdoj 1232
- Qt-GUI如何更新状态条
- 运行服务器
- C语言错误:expected declaration or statement at end of input
- 母函数 入门 + 模板【母函数】
- java两个站点之间url传中文乱码的问题
- java的System.getProperty()方法可以获取的值