mirror of
https://github.com/xlucn/PAT.git
synced 2026-10-31 06:37:38 +08:00
26 lines
1.1 KiB
HTML
26 lines
1.1 KiB
HTML
<!DOCTYPE html>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<h1>1067. Sort with Swap(0,*) (25)</h1>
|
|
<div id="problemContent">
|
|
<p>Given any permutation of the numbers {0, 1, 2,..., N-1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY operation that is allowed to use? For example, to sort {4, 0, 2, 1, 3} we may apply the swap operations in the following way:</p>
|
|
<p>
|
|
Swap(0, 1) => {4, 1, 2, 0, 3}<br/>
|
|
Swap(0, 3) => {4, 1, 2, 3, 0}<br/>
|
|
Swap(0, 4) => {0, 1, 2, 3, 4}
|
|
</p>
|
|
<p>Now you are asked to find the minimum number of swaps need to sort the given permutation of the first N nonnegative integers. </p>
|
|
<p><b>
|
|
Input Specification:
|
|
</b></p>
|
|
<p>Each input file contains one test case, which gives a positive N (<=10<sup>5</sup>) followed by a permutation sequence of {0, 1, ..., N-1}. All the numbers in a line are separated by a space.</p>
|
|
<p><b>
|
|
Output Specification:
|
|
</b></p>
|
|
<p>For each case, simply print in a line the minimum number of swaps need to sort the given permutation.</p>
|
|
<b>Sample Input:</b><pre>
|
|
10 3 5 7 2 6 4 9 0 8 1
|
|
</pre>
|
|
<b>Sample Output:</b><pre>
|
|
9
|
|
</pre>
|
|
</div> |