POJ1804 Brainman
来源:互联网 发布:有意思的java小程序 编辑:程序博客网 时间:2024/06/06 11:00
水题,没啥好说的,归并排序求逆序对
代码如下:
#include<stdio.h>#include<stdlib.h>int a[1000000], b[1000000];int num;void mix(int *a,int *n,int left,int mid,int right){ int i = left; int j = mid + 1; int k = left; while (i < mid + 1 && j < right + 1) { if (a[i] <= a[j]) b[k++] = a[i++]; else { b[k++] = a[j++]; num += mid - i + 1; } } while (i != mid + 1) b[k++] = a[i++]; while (j != right +1 ) b[k++] = a[j++]; for (i = 0; i < k; i++) a[i] = b[i];}void sever(int *a,int *b,int left,int right){ int mid; if (left < right) { mid = (left + right) / 2; sever(a, b, left, mid); sever(a, b, mid + 1, right); mix(a, b, left, mid, right); }}int main(){ int m,n,i,j,count=1; scanf("%d", &m); for ( i = 0; i < m; i++) { num = 0; scanf("%d", &n); for (j = 0; j < n; j++) scanf("%d", &a[j]); sever(a, b, 0, n - 1); printf("Scenario #%d:\n", count++); printf("%d\n", num); printf("\n"); } return 0;}
0 0
- POJ1804 Brainman
- 【poj1804】 Brainman
- POJ1804-Brainman
- [POJ1804]Brainman
- A计划---POJ1804 Brainman
- POJ1804 Brainman (逆序对)
- POJ1804-Brainman(归并排序求逆序数)
- poj1804 Brainman 归并排序求逆序对
- POJ1804《Brainman》方法:归并排序找逆序数
- poj1804
- poj1804
- POJ1804
- POJ1804
- poj1804
- poj1804
- 归并排序与逆序对问题---(解题报告)POJ1804---Brainman
- Brainman
- Brainman
- Docker vs Vagrant
- javaweb开发过程中的错误总结
- 初学php之echo print print_r var_dump的区别
- UML类图几种关系的总结
- 计算机基础知识
- POJ1804 Brainman
- 生活杂谈
- 找出给定数数组里连续的元素和的最大值
- poj--1237--Drainage Ditches(最大流)
- [iOS进阶]Baidu Map SDK之批量请求
- [网络管理]全双工与半双工的区别
- Android 自定义View (一)
- <黑马程序员> 第四篇:多线程
- 用户名处理PHP函数,保留两边,中间用星号表示