hdu 1394 inversion number ++ARRAY TREE
来源:互联网 发布:linux rsync安装配置 编辑:程序博客网 时间:2024/05/21 17:01
求逆序数
#include <stdio.h>#include <string.h>#define N 5050int a[N],n;int lowbit(int i){ return i&(-i);}void add(int i){ for(;i<=n; i += lowbit(i)) a[i] ++;}int sum(int i){ int s = 0; for(; i > 0; i -= lowbit(i)) s += a[i]; return s;}int main(){ while(scanf("%d",&n)!= EOF) { int i,res = 0,b[N]; memset(a,0,sizeof(a)); for(i = 0; i < n; ++i) { scanf("%d",&b[i]); ++b[i]; res += sum(n) - sum(b[i]); add(b[i]); } int tmp = res; ///新的逆序数只由移动的最左端的数决定 for(i = 0; i < n; ++i) { tmp = tmp + sum(n) - sum(b[i]) -sum(b[i] - 1); if(tmp < res) res = tmp; } printf("%d\n",res); } return 0;}
- hdu 1394 inversion number ++ARRAY TREE
- HDU 1394 Minimum Inversion Number Segment Tree解法
- 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
- NOKIA C6-00 MP3歌曲文件乱码
- RMI入门之HelloWorld范例学习
- <cms:contentshow>标签的使用
- Android 4.0 源代码地址
- The <cms:contentinfo> tag
- hdu 1394 inversion number ++ARRAY TREE
- 浅谈<cms:contentaccess>标签的使用
- <cms:contentloop> 标签的使用
- 了解了新东西:CDN
- <cms:contentcheck>标签的使用
- OpenCms JSP标签详解——cms:label标签
- 疯狂Java
- 设计模式学习笔记——创建者模式
- <cms:include> 标签的基本使用方法