求加题解,新做法
查看原帖
求加题解,新做法
1419629
xue_juanwang_qwq楼主2024/9/16 09:29
#include<bits/stdc++.h>
using namespace std;
int n;
int a[10005],ans;
map<int,int> vis;
int main () {
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		vis[a[i]]=i;
	}
	for(int i=1;i<=n;i++)
		if(a[i]!=i){
			int x=vis[i];
			vis[i]=vis[a[i]],vis[a[i]]=x;
			swap(a[i],a[x]);
			ans++;
		}
	cout<<ans<<endl;return 0;
}

map O(N)做法
2024/9/16 09:29
加载中...