交换瓶子 --- 蓝桥杯 (暴力)

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;

如果觉得写的还不错,那就一键三连吧 ^ ^

以上是关于交换瓶子 --- 蓝桥杯 (暴力)的主要内容,如果未能解决你的问题,请参考以下文章

交换瓶子

交换瓶子

1224. 交换瓶子思维 / 图论

交换瓶子_贪心

随手练——交换杯子

2016_B t9交换瓶子