OpenJudge

D:求逆序对数

总时间限制:
500ms
内存限制:
65536kB
描述

对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序

请求出整数序列A的所有逆序对个数

输入
输入包含多组测试数据,每组测试数据有两行
第一行为整数N(1 <= N <= 20000),当输入0时结束
第二行为N个整数,表示长为N的整数序列
输出
每组数据对应一行,输出逆序对的个数
样例输入
5
1 2 3 4 5
5
5 4 3 2 1
1
1
0
样例输出
0
10
0

1. STL编程接口:
1)(多道题均可能用到)STL队列中queue.push()是在“队尾”插入,“队头”元素访问用queue.front(),并需要额外调用queue.pop()来删除“队头”元素
2)(dynamic median)STL中声明一个int元素的优先队列(缺省为最大堆)的方法:priority_queue<int> pq; 如果需要最小堆:priority_queue<int, vector<int>, greater<int> > pq; greater<int> 所在的头文件为<functional>
2. 输入输出格式:
(heavy transportation) 题意要求每个case结束之后单独输出一个空行,而样例并未体现这一点
3. 其他需要注意的地方:
(dynamic median/股票买卖)输入数据量较大,应使用scanf而不是cin,否则有可能超时
(polygon)注意 -1 % n (n为正整数) 仍为 -1

其他问题可以到提问板上提问或者直接找助教

全局题号
5472
提交次数
585
尝试人数
155
通过人数
150

Other language verions