hdu 1394 Minimum Inversion Number
来源:互联网 发布:php记录浏览次数 编辑:程序博客网 时间:2024/05/05 03:10
Minimum Inversion Number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16798 Accepted Submission(s): 10215
For a given sequence of numbers a1, a2, ..., an, if we move the first m >= 0 numbers to the end of the seqence, we will obtain another sequence. There are totally n such sequences as the following:
a1, a2, ..., an-1, an (where m = 0 - the initial seqence)
a2, a3, ..., an, a1 (where m = 1)
a3, a4, ..., an, a1, a2 (where m = 2)
...
an, a1, a2, ..., an-1 (where m = n-1)
You are asked to write a program to find the minimum inversion number out of the above sequences.
101 3 6 9 0 8 5 7 4 2
16#include <iostream>#include <cstdio>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int N = 5555;int sum[N<<2], x[N];void build(int l, int r, int rt);void pushup(int rt);void update(int p,int l, int r,int rt);int query(int L,int R,int l, int r,int rt);int main(){ int n; while(~scanf("%d",&n)) { build(0,n-1,1); int s=0; for(int i=0;i<n;i++) { scanf("%d",&x[i]); s+=query(x[i],n-1,0,n-1,1); update(x[i],0,n-1,1); } int r=s; for(int i=0;i<n;i++) { s+=n-x[i]-1-x[i]; r=min(r,s); } cout<<r<<endl; } return 0;}void build(int l, int r, int rt){ sum[rt]=0; if(l==r) { return ; } int m=(l+r)/2; build(lson); build(rson); return ;}void pushup(int rt){ sum[rt]=sum[rt<<1]+sum[rt<<1|1]; return ;}int query(int L,int R,int l, int r,int rt){ if(L<=l&&r<=R) { return sum[rt]; } int m=(l+r)/2; int s=0; if(L<=m) { s+=query(L,R,lson); } if(R>m) { s+=query(L,R,rson); } return s;}void update(int p,int l, int r,int rt){ if(l==r) { sum[rt]++; return ; } int m=(l+r)/2; if(p<=m) { update(p,lson); } else { update(p,rson); } pushup(rt); return ;}
- 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
- 前端学习_Series1_02.CSS3新增知识
- AsyncTask 坑 (四) 多个task是串行执行还是并行的
- html插入图片后在网页显示不出来
- 圣杯布局和双飞翼布局的实现过程
- TemplateText TT 在Runtime发生 Could not load type ...... because the format is invalid
- hdu 1394 Minimum Inversion Number
- 山东省第七届ACM大学生程序设计竞赛 B Fibonacci
- websphere 发布项目war包时 Error 404:SRVE0190E: File not found: index.action
- STM32探秘 之FSMC
- iOS-简单抽屉效果实现
- docker (一)
- RS232串口线接法与线芯引脚定义
- (补)虚数的计算二(成员函数的运算符重载)
- (转载)Bootstrap 栅格系统的精妙之处