poj 2299 Ultra-QuickSort
来源:互联网 发布:cba数据库 编辑:程序博客网 时间:2024/06/15 14:50
求逆序数对
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAX = 5e5 + 5;int arr[MAX], tmp[MAX];__int64 res;void merge_sort(int* arr, int* tmp, int l, int r){ if (l == r) return ; int m = (l + r) >> 1; merge_sort(arr, tmp, l, m); merge_sort(arr, tmp, m + 1, r); for (int i = l; i <= r; ++i) tmp[i] = arr[i]; int i1 = l, i2 = m + 1; for (int curr = l; curr <= r; ++curr) { if (i1 == m + 1) arr[curr] = tmp[i2++]; else if (i2 > r) arr[curr] = tmp[i1++]; else if (tmp[i1] <= tmp[i2]) arr[curr] = tmp[i1++]; else { res += (m - i1 + 1); arr[curr] = tmp[i2++]; } }}int main(){ int n; while (scanf("%d", &n)) { res = 0; if (n == 0) break; for (int i = 0; i != n; ++i) scanf("%d", &arr[i]); merge_sort(arr, tmp, 0, n - 1); printf("%I64d\n", res); } return 0;}
0 0
- POJ 2299 Ultra-QuickSort
- poj 2299 Ultra-QuickSort
- poj 2299 Ultra-QuickSort
- poj 2299 Ultra-QuickSort
- poj 2299 Ultra-QuickSort
- poj 2299Ultra-quicksort
- POJ-2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- poj 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 - Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- POJ 2299 Ultra-QuickSort
- Alluxio文件操作Java API示例
- 北上深的天价房都卖给了谁
- HBase深入学习(2)
- Java学习笔记--虚拟机类加载机制2
- 人人都该了解的十大算法
- poj 2299 Ultra-QuickSort
- 用户注册小例子
- thinkphp 表单自动验证功能
- Android中error inflating class fragment问题
- CSS3实现翻转(Flip)效果
- Alluxio层次化存储简介
- 在activity中动态设置显示和隐藏通知栏
- Timetool 显示时间 如 2天前
- iOS9如何引入dylib