[蓝桥杯 2016 省 B] 交换瓶子

简介: [蓝桥杯 2016 省 B] 交换瓶子

蓝桥杯 2016 年省赛 B 组 I 题

题目描述

有 N个瓶子,编号 1∼N,放在架子上。


比如有 5 个瓶子:


2,1,3,5,4


要求每次拿起 22 个瓶子,交换它们的位置。


经过若干次后,使得瓶子的序号为:


1,2,3,4,5


对于这么简单的情况,显然,至少需要交换 22 次就可以复位。


如果瓶子更多呢?你可以通过编程来解决。


输入格式

第一行:一个正整数 N(N<10000),表示瓶子的数目。

第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。

输出格式

输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。

输入输出样例

输入

5

3 1 2 5 4

输出

3

输入

5

5 4 3 2 1

输出

2

说明/提示

时限 1 秒, 256M。蓝桥杯 2016 年第七届省赛

#include<iostream>
using namespace std;
int main()
{
    int g[10010];
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> g[i];
    }
    int  res = 0;
    for (int i = 1; i <= n; i++)
    {
        if (g[i] != i)
        {
            for (int j = i; j <= n; j++)
            {
                if (g[j] == i)
                {
                    g[j] = g[i];
                    g[i] = i;
                    res++;
                    break;
                }
            }
        }
    }
    cout << res << endl;
    return 0;
}


目录
相关文章
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-477 高低位交换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-477 高低位交换
32 0
|
2月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
40 1
|
2月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
70 0
|
2月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
57 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
53 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
64 0
|
2月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
62 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
57 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
53 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
57 0