sgu 180 - Inversions (离散化+树状数组)
2015-08-06 17:09
330 查看
- Inversions
Time Limit:250MS Memory Limit:4096KB 64bit IO Format:%I64d & %I64u
Submit Status
Description
memory limit per test: 4096 KB[/align]
[align=center]input: standard
output: standard[/align]
[align=left]There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<=i<j<=N and A[i]>A[j].[/align]
[align=left]
Input[/align]
[align=left]The first line of the input contains the number N. The second line contains N numbers A1...AN.[/align]
[align=left]
Output[/align]
[align=left]Write amount of such pairs.[/align]
[align=left]
Sample test(s)[/align]
[align=left]
Input[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]5
2 3 1 5 4[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]
Output[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]3[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]一直wa 2[/align]
[align=left]后来发现是没处理相同元素(我好傻逼啊。。。。)[/align]
[align=left]离散化的时候,很重要的一项,当然是相同的元素,离散化的之后也要变成相同的。。。[/align]
[align=left]上道题过了纯粹是数据水。。。[/align]
[align=left] [/align]
[align=left] [/align]
Time Limit:250MS Memory Limit:4096KB 64bit IO Format:%I64d & %I64u
Submit Status
Description
180. Inversions
[align=center]time limit per test: 0.25 sec.memory limit per test: 4096 KB[/align]
[align=center]input: standard
output: standard[/align]
[align=left]There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<=i<j<=N and A[i]>A[j].[/align]
[align=left]
Input[/align]
[align=left]The first line of the input contains the number N. The second line contains N numbers A1...AN.[/align]
[align=left]
Output[/align]
[align=left]Write amount of such pairs.[/align]
[align=left]
Sample test(s)[/align]
[align=left]
Input[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]5
2 3 1 5 4[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]
Output[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]3[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]一直wa 2[/align]
[align=left]后来发现是没处理相同元素(我好傻逼啊。。。。)[/align]
[align=left]离散化的时候,很重要的一项,当然是相同的元素,离散化的之后也要变成相同的。。。[/align]
[align=left]上道题过了纯粹是数据水。。。[/align]
[align=left] [/align]
/************************************************************************* > File Name: code/sgu/180.cpp > Author: 111qqz > Email: rkz2013@126.com > Created Time: 2015年08月06日 星期四 16时40分53秒 ************************************************************************/ #include<iostream> #include<iomanip> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<string> #include<map> #include<set> #include<queue> #include<vector> #include<stack> #define y0 abc111qqz #define y1 hust111qqz #define yn hez111qqz #define j1 cute111qqz #define tm crazy111qqz #define lr dying111qqz using namespace std; #define REP(i, n) for (int i=0;i<int(n);++i) typedef long long LL; typedef unsigned long long ULL; const int inf = 0x7fffffff; const int N=7E4+7; struct Q { int val; int id; }q ; int c ; int ref ; int n; bool cmp(Q a,Q b) { if (a.val<b.val) return true; return false; } int lowbit( int x) { return x&(-x); } void update( int x,int delta) { for ( int i = x; i < N ; i=i+lowbit(i) ) { c[i] = c[i] + delta; } } int Sum( int x) { int res =0; for ( int i = x; i >= 1 ; i = i-lowbit(i)) { res = res + c[i]; } return res; } int main() { while (scanf("%d",&n)!=EOF) { memset(c,0,sizeof(c)); for ( int i = 1; i <= n ; i++ ) { scanf("%d",&q[i].val); q[i].id = i ; } sort(q+1,q+n+1,cmp); for ( int i = 1; i <= n ; i++ ) { if (q[i].val!=q[i-1].val) { ref[q[i].id]=i; } else { ref[q[i].id]=ref[q[i-1].id]; } } // for ( int i = 1 ;i <= n ; i ++) cout<<ref[i]<<endl; LL ans = 0; for ( int i = 1 ; i <= n ; i++ ) { update(ref[i],1); ans = ans + i-Sum(ref[i]); } cout<<ans<<endl; } return 0; }
[align=left] [/align]
相关文章推荐
- 15期.net 博客汇总
- bootstrap模态框打开报错
- jQuery几个重要的实际应用技巧
- NavigationBar的第二中方法,图片变色,文字不变色
- ffmpeg 怎么用
- P - 奔小康赚大钱 - hdu 2255(带权值的匹配)
- mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
- ant打包
- UVA 639 Don't Get Rooked
- poj-1125 Stockbroker Grapevine
- Android 自定义View 视频音量调控
- SPOJ NWERC11E Please, go first
- 树的子结构
- 动软代码生成器 可用于生成Entity层,可更改模板 /codesmith 也可以
- 可能性dp+减少国家HDU4336
- 好用的工具---screen命令
- 【codevs】p1044 拦截导弹
- 基于SSH2框架AspectJ的登录登出日志实现
- 【开源中国来大“招”了】运维总监月薪25K起,还不限学历
- USB product id / vendor id 对应厂商查询