B - Brainman (POJ - 1804)

Posted Alpacaddhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B - Brainman (POJ - 1804)相关的知识,希望对你有一定的参考价值。

- 题目大意

    给出一串数字,问能是它为顺序排列的最小交换数字方式。

- 解答思路

    利用归并排序来求逆序数(注意数组的大小就行了)。

- 代码

#include<iostream>
using namespace std;
int num[100000];
int main()
{
	int n,m;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> m;
		for (int j = 1; j <= m; j++)
			cin >> num[j];
		int sum = 0;
		for (int i = 1; i < m; i++)
			for (int k = i + 1; k <= m; k++)
				if (num[i] > num[k])
					sum++;
		cout << "Scenario " << "#"<<i<<":" << endl<<sum<<endl<<endl;
	}
	return 0;
}

  

以上是关于B - Brainman (POJ - 1804)的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1804Brainman

A计划---POJ1804 Brainman

POJ 1804 Brainman(5种解法,好题,暴力,归并排序,线段树单点更新,树状数组,平衡树)

POJ 1804

POJ 1804 逆序对数量 / 归并排序

vjudge-Brainman(参谋)题目翻译