1067. Sort with Swap(0,*) (25)
来源:互联网 发布:非凡网络加速器下载 编辑:程序博客网 时间:2024/06/04 01:09
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:
Swap(0, 1) => {4, 1, 2, 0, 3}
Swap(0, 3) => {4, 1, 2, 3, 0}
Swap(0, 4) => {0, 1, 2, 3, 4}
Now you are asked to find the minimum number of swaps need to sort the given permutation of the first N nonnegative integers.
Input Specification:
Each input file contains one test case, which gives a positive N (<=105) followed by a permutation sequence of {0, 1, ..., N-1}. All the numbers in a line are separated by a space.
Output Specification:
For each case, simply print in a line the minimum number of swaps need to sort the given permutation.
Sample Input:10 3 5 7 2 6 4 9 0 8 1Sample Output:
9
关键在于存储每个数所在的位置,交换的时候实际上是交换所在的位置。
#include <iostream>#include <vector>using namespace std;int main(){int n;cin>>n;vector<int> pos(n);for(int i=0;i<n;i++){int t;cin>>t;pos[t] = i;}int cnt = 0;for(int i=0;i<n;i++){while(pos[0] != 0){int t = pos[0];pos[0] = pos[t];pos[t] = t;cnt++;}if(pos[i] != i){pos[0] = pos[i];pos[i] = 0;cnt++;}}cout<<cnt<<endl;return 0;}
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- pat 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- PAT 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 【PAT】1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- iOS: 如何判断字符串是否相等?
- Python源码阅读-内存管理机制(二) http://python.jobbole.com/83535/
- coreboot学习3:启动流程跟踪之bootblock阶段
- 禁止scrollVie滚动
- Python 基础——dict(二)
- 1067. Sort with Swap(0,*) (25)
- 聊天界面
- 高性能服务器架构
- 阿里云不同账户下ECS实现内网NFS文件夹共享挂载
- android sdk 更新代理
- ContentProvider组件的实现原理
- linux启动代码分析
- 网络相关
- 根据文件MIME类型打开文件