http://poj.org/problem?id=2299 在两个元素相同的数列里,其中一个数列要移动到另一个数列相同元素相同的位置,那么要移动的次数就是这个数列关于另一个数列的逆序对数(hash后) 逆序对的求法我原来的博文有 http://www.cnblogs.com/iwtwiioi/p/3523120.html 用归并排序求逆序对,大的在前 左闭右开 #include <cstdio> #include <cstring> #include <cmath>…
Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 70674   Accepted: 26538 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swappin…
利用归并排序统计逆序数,利用归并求逆序在对子序列s1和s2在归并时(s1,s2已经排好序),若s1[i]>s2[j](逆序状况),则逆序数加上s1.length-i,因为s1中i后面的数字对于s2[j]都是逆序的. #include <stdio.h> #include <stdlib.h> int N; ]; ]; __int64 count; void Merge(int l,int mid,int r){ ,k=; while(i<=mid&&j&…
Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 48077   Accepted: 17533 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent s…
我用的线段树写的. num数组表示已插入的数值的个数. 由于a[i]数值很大,但是n不是很大,所以要离散化处理 9 1 0 5 4 离散化后 4 1 0 3 2 这样保证最大值不会超过n #include <iostream> #include <string> #include <cstdio> #include <algorithm> #include <cstring> #define lson l, m, rt<<1 #def…
3289: Mato的文件管理 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 1539  Solved: 665[Submit][Status][Discuss] Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号.为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能访问.Mato每天随机选一个区间[l,r],他今天就看编号在此区间内的这些资料.Mat…
前几天开始看树状数组了,然后开始找题来刷. 首先是 POJ 2299 Ultra-QuickSort: http://poj.org/problem?id=2299 这题是指给你一个无序序列,只能交换相邻的两数使它有序,要你求出交换的次数.实质上就是求逆序对,网上有很多人说它的原理是冒泡排序,可以用归并排序来求出,但我一时间想不出它是如何和归并排序搭上边的(当初排序没学好啊~),只好用刚学过的树状数组来解决了.在POJ 1990中学到了如何在实际中应用上树状数组,没错,就是用个特殊的数组来记录即…
http://poj.org/problem?id=2299 题意:求逆序对 题解:用树状数组.每读入一个数x,另a[x]=1.那么a数列的前缀和s[x]即为x前面(或者说,再x之前读入)小于x的个数,而逆序对就是x前面所有的数减去s[x] 关于离散化,由于5e5个数据是1e9范围的整数,上面的数组明显无法开到1e9,所以有一个离散化处理技巧:将每个数的下标记录下来,然后对原序列排序(下标也跟着排).于是我们得到了一个下标的逆序对,观察发现其值等于原数列的逆序对. ac代码: 坑:忘记初始化树状…
POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化) 题意分析 前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里 离散化 有些数据本身很大,自身无法作为数组的下标保存对应的属性. 如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理! 当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化.例如: 9 1 0 5 4 与 5 2 1 4 3 的逆序对个数相同. 设有4个数: 1234567.123…
Crossings Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent…