HDU 1394 Minimum Inversion Number
来源:互联网 发布:电商公司数据分析 编辑:程序博客网 时间:2024/06/06 02:38
本题是一道并查集经典题 因为输入的数字在0~n-1之间所以所求最小逆序数可用并查集求出(归并也可以我只给出并查集的代码
并查集就是把一个数据直接往父节点上链接 最终是有多少相关就有多少棵树
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int N=5005;const int inf=99999999;int c[N];int a[N];int lowbit(int x){ return x&(-x);}void update(int x){ while(x<N){ c[x]++; x+=lowbit(x);//寻找到根节点 }}int get_sum(int x){ int ans=0; while(x>0){ ans+=c[x]; x-=lowbit(x); } return ans;}int main(){ int n, i, j, k; while(scanf("%d",&n)==1){ memset(c,0,sizeof(c)); int num=0; for(i=1;i<=n;i++){ scanf("%d",&a[i]); a[i]++; num+=get_sum(N-1)-get_sum(a[i]); update(a[i]); } int minh=inf; for(i=1;i<=n;i++) { num=num-(a[i]-1)+(n-a[i]); minh=min(minh,num); } printf("%d\n",minh); }}
)
0 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
- 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
- Minimum Inversion Number----hdu 1394
- 关于开发人员申请苹果账号相关事宜
- Python爬虫3
- android-ndk开发helloworld
- 深入JavaScript(7)S.O.L.I.D五大原则之开闭原则OCP
- 用OC语言完成简易通讯录(实现增删改查)功能.
- HDU 1394 Minimum Inversion Number
- UVA 694 The Collatz Sequence
- 深入JavaScript(8)S.O.L.I.D五大原则之里氏替换原则LSP
- C++中this指针的本质
- 引跑科技助力传统企业构建大数据价值体系
- Java模板方法的设计模式
- 那些年满天飞的bug(1)
- linux下运行c或c++
- HDOJ-1863-畅通工程