返回题解分享
讨论 / 题解分享/ 帖子详情

交换瓶子(编程题) - 题解

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>

using namespace std;

const int N=100010;
int n;
int a[N];
int cnt;
bool st[N];

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	
	for(int i=1;i<=n;i++)
	{
		if(!st[i])
		{
			cnt++;
			for(int j=i;!st[j];j=a[j])
				st[j]=true;
		}
	}
	cout<<n-cnt<<endl;
	return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!