UVA Mapping the Swaps
Posted Brenda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA Mapping the Swaps相关的知识,希望对你有一定的参考价值。
题目例如以下:
Mapping the Swaps
Mapping the Swaps |
Sorting an array can be done by swapping certain pairs of adjacent entriesin the array. This is the fundamental technique used in the well-knownbubble sort. If we list the identities of the pairs to be swapped, in thesequence they are to be swapped, we obtain what might be called a swap map.For example, suppose we wish to sort the array A whose elements are 3, 2,and 1 in that order. If the subscripts for this array are 1, 2, and 3,sorting the array can be accomplished by swapping A2 and A3, then swapping A1and A2, and finally swapping A2 and A3. If a pair is identified in a swapmap by indicating the subscript of the first element of the pair to beswapped, then this sorting process would be characterized with the swap map2 1 2.
It is instructive to note that there may be many ways in which swapping ofadjacent array entries can be used to sort an array. The previous array,containing 3 2 1, could also be sorted by swapping A1 and A2, then swappingA2 and A3, and finally swapping A1 and A2 again. The swap map that describesthis sorting sequence is 1 2 1.
For a given array, how many different swap maps exist?
A little thoughtwill show that there are an infinite number of swap maps, since sequentialswapping of an arbitrary pair of elements will not change the order of the elements. Thus the swap map 1 1 1 2 1 will also leave our arrayelements in ascending order. But how many swap maps of minimum size willplace a given array in order? That is the question you are to answer in this problem.
Input
The input data will contain an arbitrary number of test cases, followed by asingle 0. Each test case will have a integer n that gives the size of anarray, and will be followed by the n integer values in the array.
Output
For each test case, print a message similar to those shown in thesample output below. In no test case will n be larger than 5.
Sample Input
2 9 7 2 12 50 3 3 2 1 3 9 1 5 0
Sample Output
There are 1 swap maps for input data set 1. There are 0 swap maps for input data set 2. There are 2 swap maps for input data set 3. There are 1 swap maps for input data set 4.求将一个数组排序的不同方法的个数,能够将数组相邻两数交换。要求交换的次数必须最少。事实上仅仅要不反复交换两个元素。交换的次数就是最少的。知道这一点后就能够直接回溯了。
AC的代码例如以下:
以上是关于UVA Mapping the Swaps的主要内容,如果未能解决你的问题,请参考以下文章
nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)(示例代码
下落的树叶 (The Falling Leaves UVA - 699)
NHibernate错误:Could not compile the mapping document的解决
UVA - 10245 The Closest Pair Problem