POJ 1804 Brainman && zzulioj 1470: Car race game(归并排序)
来源:互联网 发布:java小游戏开发 编辑:程序博客网 时间:2024/05/18 13:44
巩固基础,在看算法导论.看到归并排序顺便做两道。
POJ这个题目是只能交换相邻两个数字,问最少需要多少次交换使得数列非递减..
zzulioj这个题目是给定车子的坐标以及速度,问会出现多少次超车。
都是归并排序求逆序对的题目...
附上POJ 1804 代码:
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;#define N 1050int a[N],tmp[N];int ans;void Merge(int l,int m,int r){ int i = l; int j = m + 1; int k = l; while(i <= m && j <= r) { if(a[i] > a[j]) { tmp[k++] = a[j++]; ans += m - i + 1; } else tmp[k++] = a[i++]; } while(i <= m) tmp[k++] = a[i++]; while(j <= r) tmp[k++] = a[j++]; for(int i = l;i <= r;i++) a[i] = tmp[i];}void Merge_sort(int l,int r){ if(l < r) { int m = (l + r) >> 1; Merge_sort(l,m); Merge_sort(m+1,r); Merge(l,m,r); }}int main(){ int T,cas = 1; cin>>T; while(T--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); ans=0; Merge_sort(1,n); printf("Scenario #%d:\n%d\n\n",cas++,ans); } return 0;}
0 0
- POJ 1804 Brainman && zzulioj 1470: Car race game(归并排序)
- POJ 1804 Brainman(归并排序)
- Car race game 归并排序求逆序数
- poj 1804 Brainman(归并)
- POJ 1804 Brainman (归并排序 -- 求逆序对数)
- poj 1804 (归并排序求逆序数)Brainman
- poj 1804 Brainman(归并排序求逆序对)
- poj 1804 (nyoj 117)Brainman : 归并排序求逆序数
- POJ 1804 Brainman、 EOJ 3234 Sort(归并排序+逆序对)
- Car race game
- Car race game 树状数组
- 小白算法练习 归并排序 POJ Brainman lanqiao
- NEFU 700 Car race game 树状数组
- POJ 1804 Brainman
- poj 1804 Brainman
- POJ 1804 Brainman
- POJ 1804 Brainman
- poj 1804 Brainman
- ArrayList与HashSet比较及HashCode分析
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- RTX51-TINY REQUIRES UPGRADE TO PK51 错误日志
- android系统中进程介绍
- UI抽屉菜单DrawerLayout(三)(测拉菜单)
- POJ 1804 Brainman && zzulioj 1470: Car race game(归并排序)
- io流 File类
- 设计模式之工厂模式
- Excel中反转一列数据的几种方法
- android 自定义控件实例
- LeetCode Rotate Image
- 冒泡排序
- 三层之上
- HBase二级索引与Join