交换瓶子 --- 蓝桥杯 (暴力)
Posted 满天星!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换瓶子 --- 蓝桥杯 (暴力)相关的知识,希望对你有一定的参考价值。
交换瓶子 — 蓝桥杯
题目描述
有 N 个瓶子,编号 1∼N,放在架子上。
比如有 5 个瓶子:
2 1 3 5 4
要求每次拿起 2 个瓶子,交换它们的位置。
经过若干次后,使得瓶子的序号为:
1 2 3 4 5
对于这么简单的情况,显然,至少需要交换 2 次就可以复位。
如果瓶子更多呢?你可以通过编程来解决。
输入格式
第一行包含一个整数 N,表示瓶子数量。
第二行包含 N 个整数,表示瓶子目前的排列状况。
输出格式
输出一个正整数,表示至少交换多少次,才能完成排序。
数据范围
1≤N≤10000,
输入样例1:
5
3 1 2 5 4
输出样例1:
3
输入样例2:
5
5 4 3 2 1
输出样例2:
2
AC代码
#include<bits/stdc++.h>
using namespace std;
const int N=11000;
int a[N];
int main()
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
while(a[i]!=i)
swap(a[i],a[a[i]]);
ans++;
cout<<ans<<endl;
return 0;
如果觉得写的还不错,那就一键三连吧 ^ ^
以上是关于交换瓶子 --- 蓝桥杯 (暴力)的主要内容,如果未能解决你的问题,请参考以下文章