• 交换瓶子


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

    比如有5个瓶子:
    2 1 3 5 4

    要求每次拿起2个瓶子,交换它们的位置。
    经过若干次后,使得瓶子的序号为:
    1 2 3 4 5

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

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

    输入格式为两行:
    第一行: 一个正整数N(N<10000), 表示瓶子的数目
    第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。

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

    例如,输入:
    5
    3 1 2 5 4

    程序应该输出:
    3

    再例如,输入:
    5
    5 4 3 2 1

    程序应该输出:
    2

    资源约定:
    峰值内存消耗 < 256M
    CPU消耗 < 1000ms

    请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

    所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

    注意: main函数需要返回0
    注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
    注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

    提交时,注意选择所期望的编译器类型。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int n;
    int s[10001];
    int main() {
        int c = 0;
        scanf("%d",&n);
        for(int i = 1;i <= n;i ++) {
            scanf("%d",&s[i]);
        }
        for(int i = 1;i <= n;i ++) {
            while(s[i] != i) {
                c ++;
                swap(s[i],s[s[i]]);
            }
        }
        printf("%d",c);
    }
  • 相关阅读:
    idea工具如何在修改jsp后不用一直重启idea
    解决端口被占用问题
    tomcat端口强制关闭
    tomcat部署方式之三(war包,也是最重要的)
    tomcat部署方式之二
    tomcat的配置方式一
    在启动tomcat时出现java_home未配置的问题(闪退)
    mysql出现“mysql不是内部或外部命令也不是可运行”
    staruml下载
    用java语言实现一个观察者模式
  • 原文地址:https://www.cnblogs.com/8023spz/p/10567274.html
Copyright © 2020-2023  润新知