HDU 1394 线段树 求逆序对数
来源:互联网 发布:java 7 64位官方下载 编辑:程序博客网 时间:2024/05/19 00:09
用线段树求逆序数来优化
求x的逆序数只需要访问(x+1,n)段有多少个数
求最小逆序数对所有情况进行爆搜
当把队首x放入数组的后面
此时的逆序数应该为x没放入最后面之前的逆序总数加上(n-x)再减去(x-1)
sum=sum+n-2*a[i]-1;
#include "stdio.h"#include "string.h"#include "math.h"#include "stdlib.h"#include "iostream"#include "algorithm"using namespace std;struct comp{int l,r,mid,x;} data[30001];void build(int l,int r,int k){data[k].l=l;data[k].r=r;data[k].mid=(l+r)/2;data[k].x=0;if (l==r) return ;build(l,data[k].mid,k*2);build(data[k].mid+1,r,k*2+1);}int query(int l,int r,int k){if (data[k].l==l && data[k].r==r)return data[k].x;if (r<=data[k].mid) return query(l,r,k*2);else if (l>data[k].mid) return query(l,r,k*2+1);else return query(l,data[k].mid,k*2)+query(data[k].mid+1,r,k*2+1);}void update(int x,int k){if (data[k].l==data[k].r){data[k].x++;return ;}if (x<=data[k].mid) update(x,k*2);else update(x,k*2+1);data[k].x=data[k*2].x+data[k*2+1].x;}int main(){int n,sum,ans,i;int a[5010];while (scanf("%d",&n)!=EOF){build(0,n-1,1);sum=0;for (i=1;i<=n;i++){scanf("%d",&a[i]);sum+=query(a[i],n-1,1);update(a[i],1);}ans=sum;for (i=1;i<=n;i++){sum=sum+n-2*a[i]-1;if (sum<ans) ans=sum;}printf("%d\n",ans);}return 0;}
- HDU 1394 线段树 求逆序对数
- HDU-1394 求逆序对数
- HDU 1394 Minimum Inversion Number(线段树/归并排序求逆序对数)
- hdu1394(线段树求逆序对数)
- hdu 1394 Minimum Inversion Number(逆序对数+线段树)
- HDU 1394 Minimum Inversion Number (最小逆序对数&线段树)
- hdu 1394(线段树求逆序数)
- hdu 1394 线段树 求逆序数
- hdu 1394 线段树求逆序数
- hdu 1394 线段树求逆序数
- HDU 1394 线段树求逆序数
- HDU 1394 线段树求逆序数
- hdu 1394 线段树求逆序对
- openjudge 求逆序对数(线段树+离散化)
- [hdu]1394 Minimum Inversion Number -- 暴力求逆序、树状数组求逆序、线段树求逆序、归并排序求逆序
- hdu 1394 求逆序数(线段树求)
- HDU 1394 Minimum Inversion Number (求逆序对数)
- hdu 4911 求逆序对数+树状数组
- cocos2dx最新2.1.5版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行
- Pthreads mutex vs Pthreads spinlock
- iOS底层API探索 – 获取CPU占用率
- 自适应网页设计(Responsive Web Design)
- 移除结尾“,”号
- HDU 1394 线段树 求逆序对数
- Spring中classpath*:使用通配符加载jar当中的资源无效的原因
- python的py文件生成单个pyc文件
- Struts+Spring+Hibernate处理Lob(Blob,Clob)
- 动态内存分配与指向它的指针变量
- stuts2 注解配置转发action
- 无法打开包括文件"cocos-ext.h" No such file or directory
- 在vs2010或者vs2008中配置PC-lint9.0版
- ueditor加选择改变事件监听,便于对百度富文本编辑器做个性开发